linux MariaDB(MySQL)数据库更改用户权限

平时维护MariaDB(MySQL)数据库服务器,难免会用到一些常用的命令,MariaDB数据库长时间不出问题,有些sql语句就会忘记,之前也没有记载,今天没事就记录下,也共享给大家一块看看,有不足之处还望谅解。

本文操作适用于MariaDB所有版本,适用于MySQL5.2以上版本
本文生产环境Centos7.3 64位 ,MariaDB server 10.2.5

MariaDB 赋予用户权限命令的简单格式可概括为:

grant 权限 on 数据库对象 to 用户;

# mysql -u root -p //登录数据库   Enter password:   MariaDB [(none)]> show databases; //查看当前数据库中所有数据库   MariaDB [(none)]> create database renwole; //新建数据库名为“renwole”   MariaDB [renwoleBD]> show tables; //显示某个数据库中的表文件   MariaDB [(none)]> select version(),current_date; //查看数据库版本和当前日期   MariaDB [(none)]> drop database renwole; //删除renwole数据库   MariaDB [renwoleDB]> desc 表名称; //查看数据库表结构   MariaDB [(none)]> show variables like '%dir%'; //查看数据库存储路径   MariaDB [(none)]> show grants; 查看当前用户权限   MariaDB [(none)]> show grants for root@'localhost'; //查看用户权限  

下面就MariaDB数据库实例讲解,例如:

创建添加一个renwole用户,密码为renwole123

# mysql -u root -p //登录数据库   Enter password:   MariaDB [(none)]> insert into mysql.user(Host,User,Password) values("localhost","renwole",password("renwole123"));  

新建一个renwoleDB数据库,并授权用户renwole拥有该数据库的所有权限。

MariaDB [(none)]> create database renwoleDB; //新建   MariaDB [(none)]> grant all privileges on renwoleDB.* to renwole@% identified by 'renwole123'; //授权,关键字 “privileges” 可以省略。   MariaDB [(none)]> flush privileges; //刷新用户权限  

如果想给一个用户查询、插入、更新、删除数据库中的所有表数据权利,可以这样来写:

MariaDB [(none)]> grant select on on renwoleDB.* to renwole@’%’ //查询   MariaDB [(none)]> grant insert on on renwoleDB.* to renwole@’%’ //插入   MariaDB [(none)]> grant update on on renwoleDB.* to renwole@’%’ //更新   MariaDB [(none)]> grant delete on on renwoleDB.* to renwole@’%’ //删除  

或者,用一个语句命令替代:

MariaDB [(none)]> grant select,insert,delete,update on renwoleDB.* to renwole@’%’ identified by 'renwole123';  

如果想查看所有Mysql用户的权限,代码如下;

MariaDB [(none)]> SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;  

如果想删除一个用户及权限,可以这样写;

MariaDB [(none)]> drop user renwole@localhost;  

如果想修改一个用户密码;

MariaDB [(none)]> update mysql.user set password=password('New-password') where User="renwole" and Host="%";   MariaDB [(none)]> flush privileges;  

添加高级root用户整个mysql服务器权限

grant all on *.* to root@'%' identified by 'Password';  

注意:【identified by】这个句子可以顺带设置密码,如果不指定该用户口令不变。

撤销已经赋予给MariaDB用户的权限。
revoke 跟 grant 的语法相似,只需要把关键字 “to” 换成 “from” 即可,例如:

grant all on *.* to renwole@%;  revoke all on *.* from renwole@%;  

MariaDB数据库的 grant、revoke 用户权限注意事项;grant, revoke 用户权限后,该用户只有重新连接 MySQL 数据库,权限才能生效。如果想让授权的用户,也可以将这些权限 grant 给其他用户,需要选项 “grant option“,例如:

MariaDB [(none)]> grant select on renwoleDB.* to renwole@% with grant option;  

这个特性一般用不到。实际中,数据库权限最好由root用户来统一管理。

注意:有时候renwole@’%’授权任意主机连接的时候需要加单引号,但有时又不需要。

原文出处:jsjs -> https://blog.jsjs.org/?p=743

本站所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如果侵犯你的利益,请发送邮箱到 [email protected],我们会很快的为您处理。
超哥软件库 » linux MariaDB(MySQL)数据库更改用户权限