1.MariaDB数据库创建用户

1.1 命令

  1. CREATE USER 'username'@'host' IDENTIFIED BY 'password';

1.2 参数

  1. 1. username:(jack)
  2. 2. 创建的用户名
  3. 3. host:(192.168.13.34)
  4. 4. 指定该用户在哪个主机上可以登陆,
  5. 5. 如果是本地用户可用localhost,
  6. 6. 如果想让该用户可以从任意远程主机登陆,可以使用通配符%
  7. 7. password:(jack)
  8. 8. 建议用户名和密码不要一致,上述只是为了演示
  9. 9. 该用户的登陆密码,密码可以为空,
  10. 10. 如果为空则该用户可以不需要密码登陆服务器.

1.3 示例

  1. 1. # 创建用户‘Ann’
  2. 2. MariaDB [(none)]> create user ann@localhost identified by 'ann'
  3. 3. # 创建用户‘Steven’
  4. 4. MariaDB [(none)]> create user Steven@localhost identified by 'Steven'
  5. 5. # 创建用户‘Jack’
  6. 6. MariaDB [mysql]> create user jack@'192.168.13.34' identified by 'jack';

2.MariaDB数据库给用户授权

2.1 命令

  1. GRANT privileges ON databasename.tablename TO 'username'@'host'

2.2 参数

  1. 1. privileges:
  2. 2. 用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所的权限则使用ALL.
  3. 3. databasename:
  4. 4. 数据库名
  5. 5. tablename:
  6. 6. 表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示,如*.*.

2.3 示例

  1. 1. # 授权Ann拥有db1数据库的所有权限,允许在localhost登录
  2. 2. MariaDB [(none)]> grant select on db1.* to ann@localhost;
  3. 3. MariaDB [mysql]> flush privileges;
  4. 4.
  5. 5. # 授权Jack拥有db1数据库的所有权限,允许在192.168.13.34登录
  6. 6. MariaDB [(none)]> grant all on db1.* to jack@'192.168.13.34';
  7. 7. MariaDB [mysql]> flush privileges;
  8. 8.
  9. 9. # 授权Steven拥有db1数据库的所有权限,允许从任意远程主机登陆,
  10. 10. # 注意你授权时用%,你创建用户时,必须也是%,要对应,否则报错.
  11. 11. MariaDB [(none)]> grant all on *.* to steven@'%';
  12. 12. MariaDB [mysql]> flush privileges;

3.MariaDB数据库创建用户并授权的命令

3.1 授权apollo用户拥有db1数据库的所有权限

  1. 1. MariaDB [mysql]> grant all on *.* to john@'192.168.13.34' identified by 'john';
  2. 2. MariaDB [mysql]> flush privileges;

3.2 授予外网登陆权限

  1. MariaDB [mysql]> grant all privileges on *.* to username@'%' identified by 'password';

3.3 授予权限并且可以授权

  1. 1. MariaDB [mysql]>grant all privileges on *.* to username@'hostname' identified by 'password' with grant option;
  2. 2. # 整个命令是一句话,这里换行是因为显示问题.

授权部分参数值: all privileges,all select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file

4.MariaDB数据库查看用户

4.1 MariaDB查看当前登录用户

  1. 1. # 方法1
  2. 2. MariaDB [(none)]> select user();
  3. 3. # 方法2
  4. 4. MariaDB [(none)]> select current_user;
  5. 5. # 方法3
  6. 6. MariaDB [(none)]> select current_user();

4.2 MariaDB中如何显示所有用户?

  1. MariaDB [(none)]> select User,Host,Password from mysql.user;

4.3 MariaDB显示所有的用户(不重复)

  1. MariaDB [mysql]> select distinct user from mysql.user;

5.MariaDB数据库删除用户

  1. 1. # 5.1 删除用户'jack'
  2. 2. MariaDB [mysql]> delete from user where user='jack';
  3. 3. # 5.2 删除用户'steven'
  4. 4. MariaDB [(none)]> delete from mysql.user where user='steven' and host='%';
  5. 5. # 5.3 删除用户'john'
  6. 6. MariaDB [(none)]> drop user 'john'@'192.168.13.34';

6.MariaDB数据库撤销用户权限

6.1 命令

  1. REVOKE privileges ON databasename.tablename FROM 'username'@'host';

6.2参数

  1. 1. privileges:
  2. 2. 用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所的权限则使用ALL.
  3. 3. databasename:
  4. 4. 数据库名
  5. 5. tablename:
  6. 6. 表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示,如*.*.

6.3 示例

  1. 1. # 假如你在给用户授权的时候是这样的:
  2. 2. grant select on db1.user to jack@'%';
  3. 3. # 执行下面sql语句
  4. 4. revoke select on *.* from jack@'%';
  5. 5. # 并不能撤销该用户对db1数据库中user表的SELECT操作.
  6. 6.
  7. 7. # 假如你在给用户授权的时候是这样的:
  8. 8. grant select on *.* to jack@'%';
  9. 9. # 执行下面sql语句
  10. 10. revoke select on db1.user from jack@'%';
  11. 11. # 并不能撤销该用户对db1数据库中user表的SELECT操作.

6.4 查看授权信息

  1. MariaDB [(none)]> show grants for 'jack'@'192.168.13.34';

6.5 撤销用户Jack所有权限

  1. revoke ALL PRIVILEGES ON `db1`.* from 'jack'@'192.168.13.34'