如果一个项目需要多个以相同的<string>
开头的mySql数据库,并且希望向用户授予对所有数据库的相同权限,那么最优雅的方法是什么?
示例:
<string>_db_1
<string>_db_2
<string>_db_3
...
<string>_db_n
GRANT <privileges> ON <database> . * TO 'user'@'localhost';
答案 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警告:0mysql>从测试中选择*;
+ ---- + ------------ +
| id |名称|
+ ---- + ------------ +
| 1 |嘿|
| 2 |那里! |
| 3 |有用!! |
+ ---- + ------------ +
设置3行(0.01秒)mysql>从测试中删除;
查询正常,受影响的3行(0.25秒)mysql>从测试中选择*;
空集(0.00秒)