我有一个包含许多表的数据库,这些表可以通过webapp服务帐户访问,也可以访问管理员帐户。
一个名为foobarSettings
的特定表存储我使用的3d派对服务的API密钥。我想为webapp帐户制作该表r / o,并为管理员写只写。因此webapp可以读取它,但无法写入。管理员可以更新它,但无法读回来。
我找到了两个解决此问题的方法:
为除 foobarSettings
之外的所有表授予UPDATE / DELETE / INSERT到webapp帐户,并将SELECT管理员帐户授予所有表,但 {{ 1}}。然后在全局级别和数据库级别删除这些用户的权限。
为foobarSettings
表格创建单独的架构。
这两种解决方案都有一些维护费用。
问题:是否有更简单的方法来设置此配置?
答案 0 :(得分:0)
根据MySQL mailing list,您无法拒绝并对已授予数据库的表执行操作。看起来您可能必须为每个表设置表级访问权限。
“如果授予权限,则无法从表中撤消SELECT权限 数据库。 您可以为要显示的每个表授予SELECT权限 而不是用户。“
不幸的是,这似乎是唯一的方式。