我有一个包含许多表的数据库,这些表可以通过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/

10-14 14:54