MySQL系列—6.权限管理

目录

1、MySQL用户权限层级

2、权限

3、MySQL访问控制

4、权限表字段详解

5、用户权限收回


1、MySQL用户权限层级

全局权限:对单个MySQL实例有所有库表的访问权限

复制代码
# *.* 表示数据库库的所有库和表,ALL对应所有权限,存储在mysql.user表中

GRANT ALL ON *.* TO 'user'@'host';

数据库层级,这些权限存储在mysql.db表 中

复制代码
#对 test库下的所有具有所有权限

GRANT ALL ON test.* TO 'user'@'host'; 

表层级,存储 mysql.tables_priv表中

复制代码
#对mydb库的mytable表具有所有权 限

GRANT ALL ON mydb.mytable TO 'user'@'host'; 

列层级,,这些权限存储在mysql.columns_priv表 中

复制代码
# test数据库下的mytable表的columne列col1, col2, col3具有所有权限,很少使用

GRANT ALL (col1, col2, col3) ON test.mytable TO 'dbmadin'@'127.0.0.1';

grant select(id,name),update(age) on test.mytable to 'dbmadin'@'localhost';

2、权限

静态权限

数据权限:select,insert,update,DELETE,File

管理权限:CREATE,alter,INDEX,DROP,SHOW VIEW

3、MySQL访问控制

MySQL权限控制主要是集中在5张表中,user,db,tables_priv,columns_priv,procs_priv每次启 动会直接加载到内存中

用户连接检查阶段

a. 用户连接时,MySQ server首先从user表里匹配host, user, password,匹配不到则拒绝 Mysql client的连接

b. check mysql.user表的max_connections和max_user_connections,如果超过上限则拒 绝连接

c. check user表的SSL安全连接,配置SSL,检查用户证书

d. 三个检查通过,MySQL server端与MySQL client端建立connection,连接建立后,当用 户执行SQL语句时,执行SQL语句检查。

e.执行SQL语句时的检查,依次检查user表、db表、tables_priv, columns_priv, procs_priv表里查看是否具有相应权限

4、权限表字段详解

用户拥有服务器中所有数据库的select权限,user表中的Select_priv列为Y

用户单单只拥有某个一数据库的select权限那么user表中的Select_priv为N

如果授予一个用户单独某个数据库的权限,就会在db表中记录一条相关信息

5、用户权限收回

使用REVOKE收回权限之后,用户帐户的记录将从db、host、tables_priv、columns_priv表 中删除

复制代码
# 移除saos_test用户对于ab.*的权限;

Mysql> revoke all on ab.* from 'xxxxx'@'%';

# 刷新授权表;

Mysql> flush privileges;
相关推荐
AIgorithmGEEK6 小时前
MySQL 索引全解(下):建、查、删实战与知识速查表
数据库·mysql·b+树·索引
Lost_the_wind6 小时前
MySQL学习笔记四
mysql
唠点键盘之外的9 小时前
26 向量数据库实战:从 0 搭一条能用的检索链路(pgvector + Spring AI)
数据库·人工智能·spring
云和恩墨9 小时前
数据库监控简史:监控不止于告警——从图表大爆发到健康管理闭环
数据库
ly76899 小时前
MongoDB 事务开销实测:快照隔离下的写冲突、重试与分片事务边界
数据库·mongodb·事务·分片集群·快照隔离·写冲突
豆角焖肉9 小时前
Spring AOP 自定义注解实现系统操作日志
数据库·自定义注解·springaop·操作日志·aop 切面
金伟API102410 小时前
不会写复杂SQL怎么办?
数据库·sql
执笔为剑11 小时前
2.1.2-1、V8R3迁移到V8R6-Oracle兼容特性
数据库
geovindu11 小时前
sql:Search-Optimized SQL Queries using mysql 9.0
android·数据库·sql·mysql·数据库开发·数据库架构
for_ever_love__11 小时前
MySQL SELECT 与 WHERE 优化实战:可搜索条件、联合索引与执行计划
数据库·mysql·oracle·select·where·条件优化·查询优化技巧