mariadb 授权多个库的语句是什么,目前想要授权多个库,如果一个一个授权会不会被覆盖,一条语句授权多个库
不知道你这个问题是否已经解决, 如果还没有解决的话:hello用户进入,发现数据库只显示information_schema
也不能创建新的数据库,这是由于没有给hello用户创建数据库的权限
重新进入root用户的数据库查user文件多了一个hello用户的
[root@foundation3 network-scripts]# mysql -uroot -predhat
MariaDB [(none)]> select * from mysql.user;
这里只挑了本机hello用户的作为例子,发现往右边可以发现权限全是N,我们用hello用户登陆发现不能新建立数据库,并且数据库只显示root用户数据库的其中一个。
| Host | User | Password | Select_priv | Insert_priv | Update_priv | Delete_priv | Create_priv | Drop_priv | Reload_priv | Shutdown_priv | Process_priv | File_priv | Grant_priv | References_priv | Index_priv | Alter_priv | Show_db_priv | Super_priv | Create_tmp_table_priv | Lock_tables_priv | Execute_priv | Repl_slave_priv | Repl_client_priv | Create_view_priv | Show_view_priv | Create_routine_priv | Alter_routine_priv | Create_user_priv | Event_priv | Trigger_priv | Create_tablespace_priv | ssl_type | ssl_cipher | x509_issuer | x509_subject | max_questions | max_updates | max_connections | max_user_connections | plugin | authentication_string |
| localhost | hello | *84BB5DF4823DA319BBF86C99624479A198E6EEE9 | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | | | | | 0 | 0 | 0 | 0 | | |
为了想要有创建数据库的权限,我们把表格里的Create_priv=N改成Y,但是这种做法测试并不能成功是错误的。因为hello用户只能看见部分数据库。
update mysql.user set Create_priv='Y' where User='hello';
#更改mysql.user表各中用户是hello的Create_priv='Y'
select * from mysql.user;# 查看发现权限为Y
发现不能新建数据库,因为这里hello不能完全显示所有数据库。
可以使用 GRANT 语句授权用户访问多个数据库,参考代码:
GRANT ALL PRIVILEGES ON db1.*, db2.* TO 'user1'@'%';
这条语句将授予 user1 对两个数据库的所有权限。如果之后再单独使用 GRANT 语句为 user1 授权其他数据库,不会对前面的授权造成影响。
还有一点,授权多个数据库时使用的语法可能因版本和配置的不同而有所不同,使用时注意一下