在mysql中以只读方式创建单个表

Chr*_*isR 17 mysql

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

附加信息

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

谢谢!

Emi*_*röm 10

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

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;
Run Code Online (Sandbox Code Playgroud)

  • 如果此用户已在此表上具有"ALL PRIVILEGES",那么我应该撤销这些用户并为每个表分配单独的表权限,还是可以仅使用SELECT覆盖单个表上的权限? (3认同)
  • 是的但我真的不急于在实时数据库上尝试这个并且设置一个具有相同数据的测试数据库不是几秒钟的问题:)我将测试它,让我们看看有多快我能得到一个本地镜像直播db :) (3认同)
  • @ChrisR更不用说,回答这个简单的问题对于搜索这个问题的其他用户来说会很方便,包括我自己. (3认同)
  • @ChrisR,是的,您应该先使用REVOKE ALL ON表FROM PUBLIC撤销所有权限,然后对表[TO PUBLIC | user]执行GRANT SELECT ON (2认同)