我有一组名称为abc_base_1,abc_base_2,abc_base_3 abc_base_n的数据集。
我想将所有这些数据库的所有表的所有特权授予一个非root用户。
通常,abc_似乎是组的通用前缀。
问题:
mysql是否具有数据库组?如果是,如何定义它们(有些特殊的东西,或者只是必须具有相同的名称前缀(如abc))?
是否可以授予数据库组特权(或名称以abc前缀开头的数据库)?如果是,如何授予?
此权限是为所有具有相同名称前缀的新数据库动态分配的,还是在创建新数据库时一直授予权限。
答案 0 :(得分:3)
是的。您可以授予由LIKE
通配符标识的一组MySQL数据库的权限:
mysql> GRANT ALL ON `abc\_%`.* TO username@localhost;
在用户尝试访问数据库时会检查权限-创建数据库时,您无需重复此GRANT
语句。
答案 1 :(得分:0)
我找到了solution。
应该按以下方式授予特权:
GRANT ALL PRIVILEGES ON `abc\_%` . * TO 'someuser'@'localhost';
此表达式具有以下权利:
abc_
开头的所有数据库abc_
开头的新数据库abc_
开头但由其他用户创建的对新数据库的访问。