8

我想在我的 MySQL 测试数据库上创建两个用户,一个对与生成报告等相关的表具有只读访问权限,另一个对相同表具有读写访问权限。这是为了测试通常与只读用户连接但在某些任务中切换到读写用户的子系统。我已经创建了具有正确权限的读写用户,现在我需要同一用户的只读版本。

我宁愿不从头开始创建只读版本,因为我必须设置很多权限,这相当费力。有没有办法可以基于现有用户创建新用户,然后从新用户中删除 INSERT/UPDATE/DELETE 权限?类似CREATE USER 'user2' LIKE 'user1'或类似的东西?如果可以这样做,我在 MySQL 文档中找不到它。

4

2 回答 2

9

插入另一个表,更新列怎么样?就像是:

CREATE TABLE user_tmp LIKE user;
INSERT INTO user_tmp SELECT * FROM user WHERE host ='localhost' AND USER ='root';
UPDATE user_tmp SET user = 'readonlyuser', Insert_priv = 'N', Update_priv = 'N',
    Delete_priv = 'N', /* TODO: ADAPT TO YOUR SUITS */ LIMIT 1;
INSERT INTO user select * FROM user_tmp;
DROP TABLE user_tmp;
于 2012-11-02T16:37:50.237 回答
3

我找到了两个选择。

第一个如果你是 Windows 用户,你可以使用 MySql 管理员。http://dev.mysql.com/doc/administrator/en/mysql-administrator-user-administration-user-accounts.html

第二,您可以使用 Mysql Utilities 中的 mysquserclone 命令:http ://wb.mysql.com/utilities/man/mysqluserclone.html

祝你好运。

于 2011-07-06T15:09:50.750 回答