1.MariaDB数据库创建用户
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
1.2 参数
username:(bughz) 创建的用户名 host:(10.0.0.1) 指定该用户在哪个主机上可以登陆, 如果是本地用户可用localhost, 如果想让该用户可以从任意远程主机登陆,可以使用通配符% password:(bughz) 建议用户名和密码不要一致,上述只是为了演示 该用户的登陆密码,密码可以为空, 如果为空则该用户可以不需要密码登陆服务器.
1.3 示例
# 创建用户‘Ann’ MariaDB [(none)]> create user Ann@localhost identified by 'Ann' # 创建用户‘Steven’ MariaDB [(none)]> create user Steven@localhost identified by 'Steven' # 创建用户‘bughz’ MariaDB [mysql]> create user bughz@'10.0.0.1' identified by 'bughz';
2.MariaDB数据库给用户授权
GRANT privileges ON databasename.tablename TO 'username'@'host'
2.2 参数
privileges: 用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所的权限则使用ALL. databasename: 数据库名 tablename: 表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示,如*.*.
2.3 示例
# 授权Ann拥有db1数据库的所有权限,允许在localhost登录 MariaDB [(none)]> grant select on db1.* to Ann@localhost; MariaDB [mysql]> flush privileges; # 授权bughz拥有db1数据库的所有权限,允许在10.0.0.1登录 MariaDB [(none)]> grant all on db1.* to bughz@'10.0.0.1'; MariaDB [mysql]> flush privileges; # 授权Steven拥有db1数据库的所有权限,允许从任意远程主机登陆, # 注意你授权时用%,你创建用户时,必须也是%,要对应,否则报错. MariaDB [(none)]> grant all on db1.* to Steven@'%'; MariaDB [mysql]> flush privileges;
3.MariaDB数据库创建用户并授权的命令
MariaDB [mysql]> grant all on *.* to bughz@'10.0.0.1' identified by 'bughz'; MariaDB [mysql]> flush privileges;
MariaDB [mysql]> grant all privileges on *.* to username@'%' identified by 'password';
MariaDB [mysql]>grant all privileges on *.* to username@'hostname' identified by 'password' with grant option; # 整个命令是一句话,这里换行是因为显示问题.
授权部分参数值: all privileges,all select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file
4.MariaDB数据库查看用户
# 方法1 MariaDB [(none)]> select user(); # 方法2 MariaDB [(none)]> select current_user; # 方法3 MariaDB [(none)]> select current_user();
MariaDB [(none)]> select User,Host,Password from mysql.user;
MariaDB [mysql]> select distinct user from mysql.user;
5.MariaDB数据库删除用户
# 5.1 删除用户'bughz' MariaDB [mysql]> delete from user where user='bughz'; # 5.2 删除用户'Steven' MariaDB [(none)]> delete from mysql.user where user='Steven' and host='%'; # 5.3 删除用户'Ann' MariaDB [(none)]> drop user 'Ann'@'10.0.0.1';
6.MariaDB数据库撤销用户权限
REVOKE privileges ON databasename.tablename FROM 'username'@'host';
privileges: 用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所的权限则使用ALL. databasename: 数据库名 tablename: 表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示,如*.*.
# 假如你在给用户授权的时候是这样的: grant select on db1.user to bughz@'%'; # 执行下面sql语句 revoke select on *.* from bughz@'%'; # 并不能撤销该用户对db1数据库中user表的SELECT操作. # 假如你在给用户授权的时候是这样的: grant select on *.* to bughz@'%'; # 执行下面sql语句 revoke select on db1.user from bughz@'%'; # 并不能撤销该用户对db1数据库中user表的SELECT操作.
MariaDB [(none)]> show grants for 'bughz'@'10.0.0.1';
revoke ALL PRIVILEGES ON `db1`.* from 'bughz'@'10.0.0.1'
7.MariaDB修改用户密码
mariadb和mysql修改用户密码有所区别,password函数不再有用,建议使用一下命令修改密码。
mysql> alter user 'root'@'localhost' identified by '123456'; Query OK, 0 rows affected (0.08 sec) mysql> alter user 'root'@'%' identified by '123456'; Query OK, 0 rows affected (0.09 sec) mysql> flush privileges; Query OK, 0 rows affected (0.03 sec)