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的安装包可以私信我,你们的支持是博主坚持创作的动力!💪💪

相关推荐
m0_5913647312 小时前
c++ 实时傅里叶变换stft c++如何进行音频的频谱分析
jvm·数据库·python
2401_8323655212 小时前
MySQL无法修改数据表结构_检查磁盘空间与元数据锁
jvm·数据库·python
l1t12 小时前
类似 X-13ARIMA-SEATS 功能的 JDemetra+ 安装和使用
java·数据库·r语言
架构源启12 小时前
2026 进阶篇:深入理解Spring Reactor响应式编程的核心引擎(源码级解析+实战避坑)
java·后端·spring
用户9623779544812 小时前
Ghost Bits:高位截断如何让 Java WAF 形同虚设
后端
薪火铺子12 小时前
SpringMVC请求处理流程源码解析(第2篇):处理器执行与参数绑定
java·后端·spring
SamDeepThinking12 小时前
一个跑了三年没出过问题的系统,我是怎么设计的
java·后端·架构
写了20年代码的老程序员12 小时前
做接口开发最烦的,不是 JSON 深,而是它打断你思考业务
后端
X566112 小时前
c++ aot编程 c++如何使用oneapi进行跨平台并行编程
jvm·数据库·python
Walter先生12 小时前
Python 行情数据清洗实战:Z-Score、MAD 与分位数过滤的异常值检测
后端·websocket·架构·实时行情数据源·美股行情api