<string>
开头的 mySql 数据库,并且希望在所有这些数据库上授予用户相同的权限,最优雅的方式是什么?例如:
<string>_db_1
<string>_db_2
<string>_db_3
...
<string>_db_n
GRANT <privileges> ON <database> . * TO 'user'@'localhost';
<string>
开头的 mySql 数据库,并且希望在所有这些数据库上授予用户相同的权限,最优雅的方式是什么?<string>_db_1
<string>_db_2
<string>_db_3
...
<string>_db_n
GRANT <privileges> ON <database> . * TO 'user'@'localhost';
以下是如何尝试:
mysql> create user 'alex'@'localhost' identified by 'xxxxxxxxxxxx';
查询 OK,0 行受到影响(0.00 秒)mysql> grant create,select,insert,update,delete on `somestring_db_%`.* to 'alex'@'localhost';
查询 OK,0 行受到影响(0.00 秒)mysql> flush privileges;
查询 OK,0 行受到影响(0.00 秒)mysql> \q
再见
[root@test ~]# mysql -u alex -p
输入密码:
欢迎来到 MySQL 监视器。命令以 ; 或 \g 结尾。
您的 MySQL 连接 ID 为 7
服务器版本:5.7.28 MySQL Community Server (GPL)
....
...
..
键入 'help;' 或 '\h' 获取帮助。键入 '\c' 来清除当前输入语句。
您正在通过 Unix 套接字强制执行 SSL 连接。请考虑关闭 SSL,因为它不会使通过 Unix 套接字进行的连接更安全。
mysql> show grants;
+-------------------------------------------------------------------------------------------+
| alex@localhost 的授权 |
+-------------------------------------------------------------------------------------------+
| GRANT USAGE ON . TO 'alex'@'localhost' |
| GRANT SELECT, INSERT, UPDATE, DELETE, CREATE ONsomestring_db_%
.* TO 'alex'@'localhost' |
+-------------------------------------------------------------------------------------------+
共 2 行 (0.00 秒)mysql> create database somestring_db_1;
查询 OK,1 行受影响 (0.00 秒)mysql> create database somestring_db_2;
查询 OK,1 行受影响 (0.00 秒)mysql> create database somestring_db_3;
查询 OK,1 行受影响 (0.00 秒)mysql> use somestring_db_1;
数据库已更改
mysql> create table test ( id int not null,name varchar(10) not null );
查询 OK,0 行受影响 (0.50 秒)mysql> insert into test values (1,'Hey'),(2,'there!'),(3,'It Works!!');
查询 OK,3 行受影响 (0.18 秒)
记录: 3 重复: 0 警告: 0mysql> select * from test;
+----+------------+
| id | name |
+----+------------+
| 1 | Hey |
| 2 | there! |
| 3 | It Works!! |
+----+------------+
共 3 行 (0.01 秒)mysql> delete from test;
查询 OK,3 行受影响 (0.25 秒)mysql> select * from test;
空集 (0.00 秒)