2011-11-25 62 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

相关问题