2010-10-05 100 views
15

如何在mysql中为单个表创建只读的用户,而他仍然可以对同一个数据库中的其他表进行写入访问?在mysql中创建单个表只读

其他信息

  • 我必须到服务器
  • 表是MyISAM的root访问权限
  • Server版本是5.0.51a-24 + lenny2

的感谢!

回答

6

撤销先前所有权限,然后授予特定的新特权:

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; 
+3

如果此用户已经有此表上,我应该撤销这些与每个表分配单个表的权限或者我可以覆盖的特权“ALL特权”单选表只有SELECT? – ChrisR 2010-10-05 07:29:59

+1

@chris有效的问题。尽管如此,简单地尝试这一点应该是一个秒钟的事情) – sfussenegger 2010-10-05 07:32:35

+3

真的,但我并不真的很想在实时数据库上尝试这一点,并用相同的数据设置测试数据库不是几秒钟的事情:)我会测试它,让我们看看有多快我可以得到一个本地镜像的实时分贝:) – ChrisR 2010-10-05 07:35:40