mariadb 授权多个库的语句是什么

mariadb 授权多个库的语句是什么,目前想要授权多个库,如果一个一个授权会不会被覆盖,一条语句授权多个库

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 看下这篇博客,也许你就懂了,链接:Mariadb启动报错排查
  • 除此之外, 这篇博客: mariadb访问权限设置中的 4.普通用户的授权和普通用户数据库的显示 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    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 授权其他数据库,不会对前面的授权造成影响。
还有一点,授权多个数据库时使用的语法可能因版本和配置的不同而有所不同,使用时注意一下