MySQL基础(十五):用户权限

  • 本博客是《MySQL基础》系列博客的第十五部分,主要介绍MySQL中的用户权限管理
  • 本博客既为方便自己查看复习而作,亦为你而作,望能有所裨益
  • 学习交流请联系 April_0911@163.com

基本概念


我们经常遇到用户权限的一些问题,如“你无权创建文件”等等。类似地,在数据库中每个用户都有一定的权限,例如用户A只能查看A数据库,用户B1只能查看B数据库的B1表等 … … \dots\dots


  • 在MySQL中,root账户为超级管理员账户,负责权限管理
  • 用户权限管理需要在mysql数据库中进行相关操作

权限管理

用户管理

查看用户

show databases; -- 查看所有数据库
use mysql; -- 使用mysql数据库
show tables; -- 展示当前数据库下的表

在这里插入图片描述

desc user; -- 描述user表结构

在这里插入图片描述

select * from user \G; -- 查看user表的详细信息,并以列的形式展示

在这里插入图片描述
在这里插入图片描述

select user,host,authentication_string from user;
查看用户名、端口号和密码

在这里插入图片描述

select user(); -- 查看当前用户

在这里插入图片描述

创建用户

create user <用户名>@ip地址 identified by '<密码>'; -- 创建用户,%表示所有端口 

修改密码

  • 8.0之前版本
update user set authentication_string = password('<密码>') 
where user = '<用户名>';
flush privileges; 
-- 权限刷新,密码修改后没有马上执行就刷新下 
  • 8.0版本及之后
update user set authentication_string='' where user='<用户名>'; -- 清空已有密码
ALTER USER <用户名>@<主机地址> IDENTIFIED BY '<密码>'; -- 创建新的密码,推荐 
set password for <用户名>@<主机地址> = '<密码>' -- 另一种创建密码的方式  

注(参考资源):
MySQL8.0后请使用alter修改用户密码,
因为在MySQL8.0以后的加密方式为caching_sha2_password,
如果使用update修改密码会给user表中root用户的authentication_string字段下设置newpassowrd值,
当再使用alter user ‘root’@‘localhost’ identified by 'newpassword’修改密码时会一直报错,必须清空后再修改,
因为authentication_string字段下只能是MySQL加密后的43位字符串密码,
其他的会报格式错误,
所以在MySQL8.0以后能修改密码的方法只能是:ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘你的密码’;


删除用户

drop user <用户名>@<主机地址>; -- 删除用户

权限管理

查看权限

use mysql; -- 使用mysql数据库
desc user; -- 查看数据库的所有权限

在这里插入图片描述

desc tables_priv; -- 查看当前用户的表权限

在这里插入图片描述

show grants; -- 查看当前账户的权限

在这里插入图片描述

show grants for <用户名>@<主机地址>; 
-- 查看指定账户的权限,USAGE标识无权限,本地地址无需添加@字段

在这里插入图片描述

创建权限

grant <权限> on <数据库>.<数据表> to <用户名>@<主机地址>; 
grant all on *.* to <用户名>@<主机地址>; -- 授予用户所有数据库的所有权限 
grant select(last_name) on sakila.actor to <test>@192.168.0.1;
-- 只能查看sakila数据库中actor表的last_name字段

修改权限

修改用户的相关权限一般都是全部删除之后再重新授予

删除权限

revoke all on *.* from <用户名>@<主机地址>; 
-- 收回用户所有权限(权限修改后会叠加,因此赋予新权限时最好清空原有权限后再赋予)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值