【发布时间】:2013-01-14 17:52:20
【问题描述】:
所以,我知道我可以为所有表使用通配符数据库。例如,如果我想为匹配数据库中的所有表授予用户选择权限,我可以:
GRANT SELECT
ON 'databasesprefix%'.*
TO testuser@localhost IDENTIFIED BY 'testpasswd';
但是,如果我想在所有匹配的数据库上向用户授予 UPDATE、DELETE、INSERT 权限,但仅限于特定表,则以下操作不起作用:
GRANT UPDATE, DELETE, INSERT
ON 'databasesprefix%'.specifictable
TO testuser@localhost IDENTIFIED BY 'testpasswd';
有没有办法在 SQL 中做到这一点?还是我必须在外部编写脚本?
【问题讨论】:
-
为什么每个数据库都有同一张表?这表明了一个非常非规范化的模式,这很可能是一个糟糕的设计选择。
-
针对不同客户的相同应用程序单独设置孤岛。我无法控制这个设计。只是想添加具有特定权限的用户。