2011-11-25 59 views
1

我所有在mysql中,用戶如何創建所有者數據庫並寫入?

我能夠分配權限創建新的數據庫,用戶與

root> GRANT CREATE ON *.* TO 'newuser'@'localhost'; 
newuser> create database newdb; 
newuser> Query OK, 1 row affected (0.00 sec) 

現在,我想那只是「NEWUSER」創建NEWDB是由NEWUSER自己寫的。

newuser> CREATE TABLE newtable (id INT); 
Query OK, 0 rows affected (0.00 sec) 
newuser> INSERT INTO newtable (id) VALUES (1); 
ERROR 1142 (42000): INSERT command denied to user 'offique'@'localhost' for table 'newtable' 

我嘗試設置權限(使用相同的用戶...)沒有解決之道:-(

newuser> GRANT ALL PRIVILEGES ON newdb.* TO 'newuser'@'localhost'; 
ERROR 1044 (42000): Access denied for user 'newuser'@'localhost' to database 'newdb' 

什麼想法?

非常感謝!

+0

有沒有使用'GRANT'命令後你'FLUSH PRIVILEGES'? http://dev.mysql.com/doc/refman/5.0/en/flush.html – dakdad

+0

謝謝達克 但它是無益的... GRANT命令產生不好...(錯誤1044(42000):訪問被拒絕) – Roberto

+0

使用'GRANT CREATE ON *。* TO'newuser'@'localhost';'當您從本地主機連接時,您將CREATE特權授予'newuser'。你有沒有試過給予他所有的特權? – Dor

回答

2

現在,我是否由newuser創建的newdb可由newuser本身寫入。

在這種情況下,它是足夠多給數據庫水平的INSERT特權 -

GRANT INSERT ON *.* TO 'newuser'@'localhost'; 

您應該從「根」帳戶授予它,因爲你的新用戶沒有權利這樣做本身。


GRANT INSERT ON newdb.* TO 'newuser'@'localhost'; 
+0

謝謝Devart。 但在這種情況下,新用戶可以訪問所有數據庫。我希望新用戶只能訪問數據庫創建本身。 – Roberto

+0

@羅伯託哦,對不起。我錯過了。我改變了答案。 – Devart

+0

謝謝Devart :-) – Roberto

相關問題