我正在与其他一些合作者一起从事一些数据项目。大多数都是 SQL 的新手,所以询问我是否可以将“原始”数据表设置为只读,这样它们就不会被意外更改,我将如何去做?目前所有用户都有 GRANT SELECT ON mydb.* TO 'user'@'%'
权限,但我需要更开放一些。
有一个关于制作 single table read-only 的问题,但它似乎会拒绝用户制作其他表格的能力;或者即使他们这样做了,他们也无法对他们做任何事情。似乎没有(或者我找不到)像 NTFS 中那样覆盖允许/授权的“拒绝”设置;从我读到的 REVOKE 只是与先前的 GRANT 相反,你不能“嵌套”它们。
我正在考虑制作一个单独的“原始”数据库,该数据库只能用于 SELECT,以便用户可以将其复制到“工作区”数据库中,但这似乎有点老套,并且会占用我的一些半显着空间预算云服务器。什么是正确的解决方案?
最佳答案
GRANT SELECT ON example.* to 'someuser'@'somehost';
授予只读权限。
GRANT CREATE ON example TO 'someuser'@'somehost';
授予创建表权限。
关于mysql - 如何将某些表设置为只读但允许用户创建新表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17713886/