平时维护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@’%’授权任意主机连接的时候需要加单引号,但有时又不需要。
版权声明:本站原创文章,欢迎任何形式的转载。
转载请注明:linux MariaDB(MySQL)数据库更改用户权限 | 任我乐