如何拒绝单个MySQL表的SELECT权限?

时间:2014-03-03 18:56:09

标签: mysql

我有一个包含许多表的数据库,这些表可以通过webapp服务帐户访问,也可以访问管理员帐户。

一个名为foobarSettings的特定表存储我使用的3d派对服务的API密钥。我想为webapp帐户制作该表r / o,并为管理员写只写。因此webapp可以读取它,但无法写入。管理员可以更新它,但无法读回来。

我找到了两个解决此问题的方法:

  1. 为除 foobarSettings之外的所有表授予UPDATE / DELETE / INSERT到webapp帐户,并将SELECT管理员帐户授予所有表,但 {{ 1}}。然后在全局级别和数据库级别删除这些用户的权限。

  2. foobarSettings表格创建单独的架构。

  3. 这两种解决方案都有一些维护费用。

    问题:是否有更简单的方法来设置此配置?

1 个答案:

答案 0 :(得分:0)

根据MySQL mailing list,您无法拒绝并对已授予数据库的表执行操作。看起来您可能必须为每个表设置表级访问权限。

来自mailing list post

  

“如果授予权限,则无法从表中撤消SELECT权限   数据库。   您可以为要显示的每个表授予SELECT权限   而不是用户。“

不幸的是,这似乎是唯一的方式。