Mysql 授予用户使用给定名称创建数据库的访问权限

Mysql 授予用户使用给定名称创建数据库的访问权限,mysql,Mysql,我想授予用户(我的程序)对给定数据库的所有访问权限—读/写,甚至删除 重要的是,在删除之后(最初,在它存在之前),用户能够创建数据库-但只能使用给定的数据库名称,并且用户除了此数据库之外,不应有任何其他访问权限 我失去了授权…数据库不必存在才能授予访问权限。作为root这样的特权用户,您可以 mysql> grant all on dooda.* to 'dooda'@'localhost' identified by 'dooda'; mysql> exit 然后 但你不能 my

我想授予用户(我的程序)对给定数据库的所有访问权限—读/写,甚至删除

重要的是,在删除之后(最初,在它存在之前),用户能够创建数据库-但只能使用给定的数据库名称,并且用户除了此数据库之外,不应有任何其他访问权限


我失去了
授权…

数据库不必存在才能授予访问权限。作为root这样的特权用户,您可以

mysql> grant all on dooda.* to 'dooda'@'localhost' identified by 'dooda';
mysql> exit
然后

但你不能

mysql> create database somethingelse;
ERROR 1044 (42000): Access denied for user 'dooda'@'localhost' to database 'somethingelse'
如果你

mysql> drop database dooda;
Query OK, 0 rows affected (0.00 sec)
mysql> create database dooda;
Query OK, 1 row affected (0.01 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| dooda              |
| test               |
+--------------------+

看,如果它能帮助你,好吧,我想我明白了,这就是我所期望的。I-作为root-创建用户并授予该用户在不存在的数据库上的所有权限,然后用户只能创建和操作该数据库?是这样吗?是的。他们甚至可以删除数据库并重新创建它,但他们不能创建任何名称与根授予他们访问权限的名称不同的数据库。
mysql> drop database dooda;
Query OK, 0 rows affected (0.00 sec)
mysql> create database dooda;
Query OK, 1 row affected (0.01 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| dooda              |
| test               |
+--------------------+