2015-08-28 39 views
1

我想授予用户(我的程序)对给定数据库的所有访问权限 - 读取/写入,甚至删除。授予用户使用给定名称创建数据库的权限

重要的是,在删除之后(以及最初在它存在之前),用户能够创建数据库 - 但只能使用给定的数据库名称,用户应该无法访问除此之外的任何内容数据库。

我在的GRANT ...

+1

看它能帮助你http://stackoverflow.com/questions/5016505/mysql-grant-all-privile ges-on-database – Jkike

回答

1

亏损的数据库没有存在授予访问它。作为特权用户如根,你可以做

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

然后

jason:>mysql -u dooda -p 
Enter password: 
etc 
mysql> create database dooda; 
Query OK, 1 row affected (0.00 sec) 

但你不能

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    | 
+--------------------+ 
+0

好吧,我认为我明白了,这就是我所期望的。我 - 以root身份 - 创建用户并将该用户的所有权限授予不存在的数据库,然后用户只能创建和操作该数据库?那是对的吗? – Mawg

+1

是的。他们甚至可以删除数据库并重新创建数据库,但他们无法创建任何名称不同的数据库,这些数据库授予他们访问权限。 – MagicLAMP

相关问题