在mysql中创建单个表只读
问题描述:
如何在mysql中为单个表创建只读的用户,而他仍然可以对同一个数据库中的其他表进行写入访问?在mysql中创建单个表只读
其他信息
- 我必须到服务器
- 表是MyISAM的root访问权限
- Server版本是5.0.51a-24 + lenny2
的感谢!
答
撤销先前所有权限,然后授予特定的新特权:
REVOKE ALL ON db.table FROM user;
REVOKE ALL ON db.othertable FROM user;
GRANT SELECT ON db.table TO user;
GRANT SELECT, INSERT, UPDATE, DELETE ON db.othertable TO user;
答
只能通过压缩表使读一个单一的MyISAM表。在命令行上使用myisampack
打包表。
更多信息可以在MySQL手册中找到:http://dev.mysql.com/doc/refman/5.0/en/myisampack.html
如果此用户已经有此表上,我应该撤销这些与每个表分配单个表的权限或者我可以覆盖的特权“ALL特权”单选表只有SELECT? – ChrisR 2010-10-05 07:29:59
@chris有效的问题。尽管如此,简单地尝试这一点应该是一个秒钟的事情) – sfussenegger 2010-10-05 07:32:35
真的,但我并不真的很想在实时数据库上尝试这一点,并用相同的数据设置测试数据库不是几秒钟的事情:)我会测试它,让我们看看有多快我可以得到一个本地镜像的实时分贝:) – ChrisR 2010-10-05 07:35:40