我想在我的MySQL测试数据库上创建两个用户,一个用户可以对与生成报告相关的表进行只读访问等,另一个用户可以对同一个表进行读写访问。这用于测试通常与只读用户连接的子系统,但是为某些任务切换到读写用户。我已经使用正确的权限创建了读写用户,现在我需要同一用户的只读版本。
我不想从头开始创建只读版本,因为我必须设置很多权限,这是相当费力的。有没有办法可以根据现有用户创建新用户,然后从新用户中删除INSERT / UPDATE / DELETE权限?像CREATE USER 'user2' LIKE 'user1'
或类似的东西?如果可以做到这一点,我在MySQL文档中找不到它。
答案 0 :(得分:8)
如何插入另一个表,更新列?类似的东西:
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;
答案 1 :(得分:4)
我找到了两个选择。
如果您是Windows用户,则可以使用MySql Administrator。 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
祝你好运。