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

相关推荐
oak隔壁找我15 小时前
Java的JAR包
后端
GetcharZp16 小时前
告别 TCP 握手延迟!让你的 Go 服务瞬间拥抱 HTTP/3 时代
后端
素玥16 小时前
实训5 python连接mysql数据库
数据库·python·mysql
jnrjian16 小时前
text index 查看index column index定义 index 刷新频率 index视图
数据库·oracle
oak隔壁找我16 小时前
SpringBoot 将项目打包成 Fat JAR(肥包),核心原理
后端
瀚高PG实验室16 小时前
审计策略修改
网络·数据库·瀚高数据库
言慢行善16 小时前
sqlserver模糊查询问题
java·数据库·sqlserver
韶博雅16 小时前
emcc24ai
开发语言·数据库·python
有想法的py工程师17 小时前
PostgreSQL 分区表排序优化:Append Sort 优化为 Merge Append
大数据·数据库·postgresql