mysql 的用户管理

1.1.1、相关命令

创建名称为xiaolin 的用户,密码为123456
create user xiaolin identified by ‘123456’

查看用户和权限的相关信息
select * from mysql.user
image.png

host表示连接类型。

  1. %:表示所有远程通过TCP方式连接。
  2. 127.0.0.1:通过指定IP进行的TCP方式的连接。
  3. 机器名:通过指定网络中的机器名进行的TCP方式的连接。
  4. ::1:IPV6的本地IP地址,等同于IPV4的127.0.0.1
  5. localhost 本地方式通过命令行方式的连接 ,比如 mysql -u xxx -p 123xxx 方式的连接。

    select_priv , insert_priv等

表示该用户所拥有的权限。

修改用户名, 必须通过flush privlilegs 才能生效
update mysql.user set user=’zs’ where user=’xiaolin’

删除用户
drop user xiaolin

1.2.1、授予权限

我们可以通过命令来授予用户权限,该权限如果发现没有该用户,则会直接新建一个用户。
格式为:
grant 权限 1,权限 2,…权限 n on 数据库名称.表名称 to 用户名@用户地址 identified by‘连接口令 复制代码
示范:

  1. # 给 xiaolin 用户用本地命令行方式下,授予 user 这个库下的所有表的插删改查的权限。
  2. grant select,insert,delete,drop on user.* to xiaolin@localhost;
  3. # 授予通过网络方式登录的的 xiaolin 用户 ,对所有库所有表的全部权限,密码设为 123.
  4. grant all privileges on *.* to xiaolin@'%' identified by '123';

1.2.2、查看权限

我们可以使用命令来查看当前用户的权限。

  1. show grants;

1.2.3、收回权限

我们可以使用命令来收回用户的权限,权限收回后,必须用户重新登录后,才能生效。
revoke [权限 1,权限 2,…权限 n] on 库名.表名 from 用户名@用户地址 ; 复制代码
示范:

  1. # 收回全库全表的所有权限
  2. REVOKE ALL PRIVILEGES ON mysql.* FROM joe@localhost;
  3. # 收回 mysql 库下的所有表的插删改查权限 REVOKE select,insert,update,delete ON mysql.* FROM xiaolin@localhost;