【发布时间】:2011-11-25 00:42:24
【问题描述】:
我都
我能够为用户分配创建新数据库的权限
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'
有什么想法吗?
非常感谢!
【问题讨论】:
-
您在使用
GRANT命令后是否FLUSH PRIVILEGES? dev.mysql.com/doc/refman/5.0/en/flush.html -
感谢 dak,但这将无济于事... GRANT 命令的输出效果不佳...(错误 1044 (42000):访问被拒绝)
-
使用
GRANT CREATE ON *.* TO 'newuser'@'localhost';,当他从本地主机连接时,您将CREATE 权限授予newuser。您是否尝试过授予他所有权限? -
为 newuser 添加权限时需要 root 权限 - 因为 newuser 只有
CREATE权限。所以,root> GRANT ALL PRIVILEGES ON newdb.* TO 'newuser'@'localhost' WITH GRANT OPTION;应该赋予 newuser 对 newdb 的所有权限 -
那么......新用户不可能自己创建数据库并写入而不传递root用户(授予权限)?
标签: mysql sql privileges