MySQL之用户管理

MySQL之用户管理

🌟🌟hello,各位读者大大们你们好呀🌟🌟

🚀🚀系列专栏:【MySQL的学习】

📝📝本篇内容:基本说明;创建用户;删除用户;修改用户密码;数据库的权限

⬆⬆⬆⬆上一篇:MySQL视图

💖💖作者简介:轩情吖,请多多指教(>> •̀֊•́ ) ̖́-

1.基本说明

如果我们只能使用root用户,这样存在安全隐患。这时,就需要使用MySQL的用户管理。

在我们的MySQL中有一个库叫做mysql,其中有个表叫做user,用户信息就存储在里面


内容非常多,只截取了一部分,我们也只挑重要的来看

host: 表示这个用户可以从哪个主机登陆,如果是localhost,表示只能从本机登陆

user: 用户名

authentication_string: 用户密码通过password函数加密后的

*_priv: 用户拥有的权限

2.创建用户

bash 复制代码
create user '用户名'@'登陆主机/ip' identified by '密码';    登录主机/ip填'%'代表所有地方可以登陆的用户


bash 复制代码
flush privileges;  如果发现没有生效,执行此SQL语句,可以不用,最好带上

我们就可以在本机登录了,不过因为权限问题,我们能看见的数据库有限

如果大家windows也安装了的话也可以尝试登录,也是可以的,但是我们无法添加直接windows的ip地址,因为它的ip是局域网ip,不过我们可以将用户登录主机要设为'%',从任意主机可以登录,需要大家注意,不要轻易添加一个可以从任意地方登陆的user!!

3.删除用户

bash 复制代码
drop user '用户名'@'主机名';

不过这边要注意删除的时候必须带上登录主机,在MySQL看来,用户名+主机才算一个用户,否则删除会失败。

4.修改用户密码

bash 复制代码
旧版本5.x版本
set password=password('新的密码');  自己改自己密码
set password for '用户名'@'主机名'=password('新的密码');  root用户修改指定用户的密码
新版本8.x版本
ALTER USER USER() IDENTIFIED BY '你的新密码';
ALTER USER 'jack'@'localhost' IDENTIFIED BY '87654321';

前面也说过了,像我们的用户也是在表中的,因此我们也可以像插入其他表一样插入用户或者修改密码,不过不建议。这边的修改密码就不演示了,没有办法做到实时看到

5.数据库的权限

我们一般常用的就是CURD

bash 复制代码
grant 权限列表 on 库.对象名 to '用户名'@'登陆位置' [identified by '密码']  设置权限
show grants for 'Jack'@'%';                                           查看权限

权限列表,多个权限用逗号分开

刚创建的用户没有任何权限。需要给用户授权

bash 复制代码
grant select on ...
grant select, delete, create on ....
grant all [privileges] on ... -- 表示赋予该用户在该对象上的所有权限
  • . : 代表本系统中的所有数据库的所有对象(表,视图,存储过程等)
  • 库.* : 表示某个数据库中的所有数据对象(表,视图,存储过程等)
  • identified by可选。 如果用户存在,赋予权限的同时修改密码,如果该用户不存在,就是创建用户



Jack用户:

bash 复制代码
revoke 权限列表 on 库.对象名 from '用户名'@'登陆位置';  回收权限

只要用户拥有任意数据库 / 表的权限(比如给 Jack 授予了 rootDB.t1 的 delete 权限),show databases;就会显示该用户有权限的数据库(这里就是 rootDB)

权限回收与授予:管理员先回收了 Jack 在 rootDB.t1 上的所有权限,再单独授予 delete权限。权限表现:

Jack 仅拥有 rootDB.t1 的删除行数据权限,无 select,drop 等其他权限。

执行 delete from t1 where id=1 失败:因为 where 子句需要 select 权限来定位行。

执行 select、drop 操作均被拒绝,符合权限最小分配原则。

关键结论:delete 权限不包含 select 或 drop 权限;带 where 条件的删除操作必须依赖 select 权限才能执行。
🌸🌸MySQL之用户管理大概就讲到这里啦,博主后续会继续更新更多Qt的相关知识,干货满满,如果觉得博主写的还不错的话,希望各位小伙伴不要吝啬手中的三连哦!如有小伙伴需要Qt的安装包可以私信我,你们的支持是博主坚持创作的动力!💪💪

相关推荐
404避难所2 小时前
windows安装WSL2
后端
2401_857918292 小时前
C++中的访问者模式实战
开发语言·c++·算法
格林威2 小时前
工业相机图像高速存储(C++版):RAID 0 NVMe SSD 阵列暴力提速,附海康实战代码!
开发语言·c++·人工智能·数码相机·计算机视觉·工业相机·堡盟相机
零雲2 小时前
java面试:Spring事务失效的场景有哪些?
java·数据库·面试
elseif1232 小时前
CSP-S提高级大纲
开发语言·数据结构·c++·笔记·算法·大纲·考纲
wenlonglanying2 小时前
mysql之联合索引
数据库·mysql
Aloha_up2 小时前
redis与数据库的一致性问题分析
数据库·redis·缓存
波特率1152002 小时前
C++中类的const与static关键字修饰函数与变量辨析
开发语言·c++·
牢七2 小时前
jfinal_cms-v5.1.0 审计黑盒
数据库