我有一个包含许多表的数据库,这些表可以通过webapp服务帐户以及admin帐户进行访问。
一个名为foobarSettings
的特定表存储了我使用的3d派对服务的API密钥。我想为webapp帐户设置该表为r / o,为admin设置为只写。这样该webapp可以读取但不能编写。管理员可以更新它,但不能读回来。
我找到了针对此问题的两种解决方案:
将除foobarSettings
以外的所有表的UPDATE / DELETE / INSERT授予webapp帐户,并将除foobarSettings
以外的所有表的SELECT授予admin帐户。然后在全局级别和数据库级别删除这些用户的privs。
为foobarSettings
表创建一个单独的架构。
这两种解决方案都有一些维护开销。
问题:是否有更简单的方法来设置此配置?
最佳答案
根据MySQL mailing list,您不能拒绝和操作已授予数据库的表。看起来您可能必须为每个表设置表级别的访问权限。
从mailing list post:
“如果您授予以下权限,则无法从表中撤消SELECT权限:
数据库。
您可以对要显示给每个表的表授予SELECT特权。
用户。”
不幸的是,这似乎是atm的唯一方法。
关于mysql - 如何拒绝对单个MySQL表的SELECT特权?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22154915/