我正在与其他一些合作者一起开展一些数据项目。大多数都是SQL的新手,所以询问我是否可以将'原始'数据表设为只读,这样它们就不会被意外更改,我该如何去做呢?目前,所有用户都拥有GRANT SELECT ON mydb.* TO 'user'@'%'
权限,但我需要更加开放。
有关于制作single table read-only的问题,但似乎会拒绝用户制作其他表格的能力;或者如果他们这样做,他们就无法对他们做任何事情。似乎没有(或我找不到)像NTFS那样覆盖允许/ GRANT的'拒绝'设置;从我读到的REVOKE只是与之前的GRANT相反,你不能“嵌套”它们。
我正在考虑制作一个单独的'原始'数据库,这个数据库只有SELECT,所以用户可以将它复制到'工作区'数据库中,但这看起来有点hacky并且会占用我的一些半空间。预算云服务器。什么是正确的解决方案?
答案 0 :(得分:0)
GRANT SELECT ON example.* to 'someuser'@'somehost';
授予只读权限。
GRANT CREATE ON example TO 'someuser'@'somehost';
授予create table特权。
答案 1 :(得分:0)
您可以通过压缩表格来读取单个MyISAM表格。在命令行上使用myisampack
打包表。
更多信息可以在MySQL手册中找到:http://dev.mysql.com/doc/refman/5.0/en/myisampack.html