授予具有相同前缀的数据库集的所有权限

And*_*rew 2 mysql

我有一组数据库,名称如 abc_base_1、abc_base_2、abc_base_3 abc_base_n。

我想将所有这些数据库的所有表的所有权限授予一个非 root 用户。

一般来说,abc_似乎是组的公共前缀。

问题:

  1. mysql有数据库组吗?如果是 - 如何定义它们(特殊的东西或者它只需要具有相同的名称前缀(如 abc))?

  2. 是否可以授予数据库组(或名称以 abc 前缀开头的数据库)的权限?如果是 - 如何授予?

  3. 此权限是否为具有相同名称前缀的所有新数据库动态分配,或者我应该在创建新数据库时始终授予权限。

小智 5

是的。您可以向由通配符标识的一组 MySQL 数据库授予权限LIKE

mysql> GRANT ALL ON `abc\_%`.* TO username@localhost;
Run Code Online (Sandbox Code Playgroud)

GRANT当用户尝试访问数据库时会检查权限 -创建数据库时无需重复此语句。