MySql对所有以<string>开头的数据库授予权限

时间:2018-08-10 14:51:51

标签: mysql database

如果一个项目需要多个以相同的<string>开头的mySql数据库,并且希望向用户授予对所有数据库的相同权限,那么最优雅的方法是什么?

示例:

<string>_db_1
<string>_db_2
<string>_db_3
...
<string>_db_n

GRANT <privileges> ON <database> . * TO 'user'@'localhost';

1 个答案:

答案 0 :(得分:1)

这是您可以尝试的方式:

  
    

mysql>创建由'xxxxxxxxxxxx'标识的用户'alex'@'localhost';
    查询正常,受影响的0行(0.00秒)

         

mysql>将对'somestring_db_%`。*的创建,选择,插入,更新,删除授予'alex'@'localhost';
    查询正常,受影响的0行(0.00秒)

         

mysql>刷新特权;
    查询正常,受影响的0行(0.00秒)

         

mysql> \ q
    再见

  

[root @ test〜]#mysql -u alex -p
输入密码:
欢迎使用MySQL监视器。命令以;结尾;或\ g。
您的MySQL连接ID是7
服务器版本:5.7.28 MySQL社区服务器(GPL)
....
...
..
输入“帮助;”或'\ h'寻求帮助。键入“ \ c”以清除当前输入语句。

您正在通过unix套接字强制执行ssl连接。请考虑 关闭ssl,因为它无法通过unix套接字建立连接 更安全。

  
    

mysql>显示授权;
    + ------------------------------------------------- ------------------------------------------ +
    | alex @ localhost的授予|
    + ------------------------------------------------- ------------------------------------------ +
    | 上的授权使用到'alex'@'localhost'|
    |授予选择,插入,更新,删除,在somestring_db_%上创建。*至'alex'@'localhost'|
    + ------------------------------------------------- ------------------------------------------ +
    设置2行(0.00秒)

         

mysql>创建数据库somestring_db_1;
    查询正常,受影响1行(0.00秒)

         

mysql>创建数据库somestring_db_2;
    查询正常,受影响1行(0.00秒)

         

mysql>创建数据库somestring_db_3;
    查询正常,受影响1行(0.00秒)

         

mysql>使用somestring_db_1;
    数据库已更改
    mysql>创建表测试(id int不为null,name varchar(10)不为null);
    查询正常,受影响的0行(0.50秒)

         

mysql>插入测试值(1,'Hey'),(2,'there!'),(3,'It Works !!');
    查询正常,受影响的3行(0.18秒)
    记录:3重复:0警告:0

         

mysql>从测试中选择*;
    + ---- + ------------ +
    | id |名称|
    + ---- + ------------ +
    | 1 |嘿|
    | 2 |那里! |
    | 3 |有用!! |
    + ---- + ------------ +
    设置3行(0.01秒)

         

mysql>从测试中删除;
    查询正常,受影响的3行(0.25秒)

         

mysql>从测试中选择*;
    空集(0.00秒)