2015-08-28 67 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

相關問題