我遇到了一个问题:
我在 MySQL 中创建了一个新用户,该用户拥有插入、删除、更新、选择和创建权限。现在我希望如果有人使用这个新用户注册数据库,他只能从我的数据库列表中注册一个数据库。
限制新用户只能从我的数据库列表中注册一个数据库。
谢谢!
你是在询问如何通过脚本进行操作吗?在MySQL管理员中,您可以按数据库/模式授予权限,用户仅能连接至拥有SELECT权限的数据库。
如果您想通过命令行实现而非图形界面,您可以参考文档(http://dev.mysql.com/doc/refman/5.1/en/grant.html):
GRANT SELECT, INSERT ON mydb.* TO 'someuser'@'somehost';
上述命令授予“someuser”用户从“somehost”连接到包含在“mydb”数据库中的所有表的SELECT和INSERT权限。当然,您可以更详细地设置单个表的权限,例如授予从任何主机连接的权限。
或者您是否正在寻找通过phpmyadmin进行此操作的方法?在那里,您也可以按数据库或总体授予权限,但正如我所经历的那样,您必须仔细查看,因为有时候不会立即看到这一点,有时会意外地为所有数据库设置权限。
最好的方法可能是删除所有权限,然后从头开始,以便您不会遗漏任何权限(适用于MySQL 4.1.2及更高版本)。
REVOKE ALL PRIVILEGES, GRANT OPTION FROM user
REVOKE INSERT ON SOMEDB.* FROM 'username'@'USER_IP';