MySQL用户与权限管理

1. 用户管理

  • MySQL用户分为root用户和普通用户;
  • root用户:超级管理员,拥有所有权限;
  • 普通用户:只拥有被赋予的指定权限;

1.1 创建用户

  • 执行创建用户语句的用户必须拥有CREATE USER权限;
  • 每添加一个用户,mysql.user表中会新增一条对应记录;
  • 新增用户没有任何权限,需要为其赋予指定权限;
  • 如果新增用户已经存在,会提示错误信息;
  • 基本语法:CREATE USER 用户名 [IDENTIFIED BY '密码'][,用户名 [IDENTIFIED BY '密码']]
  • 可使用CREATE USER语句同时创建多个用户,并为其指定登录密码;
  • 用户名参数表示新建用户的账户,由 用户(User) 和 主机名(Host) 构成,若不指定主机名,则默认为%表示支持所有主机登录;
    在这里插入图片描述

1.2 修改用户

  • 用户对应信息存储在mysql.user表中,因此可直接通过修改用户对应表数据修改用户;
  • 只能修改用户名或该用户对应主机;
  • 基本语法:UPDATE mysql.user SET USER='修改用户名' WHERE USER='指定用户名';
  • 在执行修改语句后,切记使用FLUSH PRIVILEGES;刷新权限;

1.3 删除用户

  • 基本语法:DROP USER user[,user]…;
  • 可同时删除多个用户,如果不指定用户对应主机名,则**默认删除host=%**的指定用户;
    在这里插入图片描述

1.4 用户密码相关

1.4.1 密码修改

修改当前用户密码: 当前用户登录状态下

# 方式一:
ALTER USER USER() IDENTIFIED BY '新密码';
# 方式二:
SET PASSWORD='新密码';

修改其他用户密码: 当前用户(必须拥有修改其他用户密码的权限,比如root用户)登录状态下

# 方式一:
ALTER USER 具体用户 IDENTIFIED BY '新密码';
# 方式二:
SET PASSWORD FOR  具体用户='新密码';

1.4.2 密码管理机制

在这里插入图片描述

2. 权限管理

  • MySQL用户只有在被赋予指定权限后,才能执行相关操作;
  • root用户拥有所有权限,普通用户只拥有被赋予的权限;

2.1 授予权限原则

在这里插入图片描述

2.2 查看权限

  • 查看MySQL支持的所有权限:show privileges;
    在这里插入图片描述
  • 查看当前用户拥有的权限:SHOW GRANTS;SHOW GRANTS FOR CURRENT_USER; SHOW GRANTS FOR CURRENT_USER();
  • 查看其他用户拥有的权限:SHOW GRANTS FOR 'user'@'主机地址' ;,前提是当前用户拥有查看其他用户权限的权限;

2.3 授予权限

  • 当前用户拥有为其他用户赋予权限的权限(比如root用户);
  • 给用户授权的方式有 2 种,分别是通过把 角色赋予用户给用户授权 和 直接给用户授权
  • 基本语法:GRANT 权限1,权限2,…权限n ON 数据库名称.表名称 TO 用户名@用户地址 [IDENTIFIED BY ‘密码口令’];
  • 赋予权限时如果发现没有该用户,则会直接新建一个用户;
  • 使用GRANT ALL PRIVILEGES为某用户赋予所有权限时,不包括为其他用户赋予权限的权限;
  • 若要使某用户可为其他用户赋予权限,则在为该用户赋予权限时添加WITH GRANT OPTIN选项即可;

2.4 收回权限

  • 基本语法:REVOKE 权限1,权限2,…权限n ON 数据库名称.表名称 FROM 用户名@用户地址;
  • 执行收回权限操作后,用户需重新登录后才会生效;

3. 权限表

  • MySQL数据库使用权限表控制用户对数据库的访问;
  • 权限表存放在MySQL自带库mysql数据库中,涉及到该库下的user、db表,以及tables_priv表、columns_priv表和procs_priv表等;
  • MySQL数据库启动时,服务器将权限表中的信息读入内存;

4. 访问控制

  • 访问控制过程分为连接核实阶段和请求核实阶段
  • 连接核实阶段:MySQL服务器接收到用户请求后,会使用user表中的host、user和authentication_string这3个字段匹配客户端提供信息。服务器只有在user表记录的Host和User字段匹配客户端主机名和用户名,并且提供正确的密码时才接受连接。如果连接核实没有通过,服务器就完全拒绝访问;否则,服务器接受连接,然后进入阶段2等待用户请求。
  • 请求核实阶段
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NorthSmile

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值