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;
相关推荐
考虑考虑2 小时前
数据库中的EXISTS
运维·数据库·后端
Wang's Blog2 小时前
Java框架快速入门: Spring Security+OAuth2之数据库和实体类的RBAC改造
java·数据库·spring
梦想平凡3 小时前
百游棋牌源代码开发搭建教程(十):隔离部署、备份恢复与双端验收
java·前端·javascript·数据库·源代码管理
xcLeigh3 小时前
让大模型长出手脚,自己写SQL查数据库(Function Calling初探)
数据库·人工智能·sql·时序数据库·timechoai
yume_sibai4 小时前
06-Rust Web 开发实战(Axum 框架 + 数据库 + JWT 认证 + 中间件 + 部署)
前端·数据库·rust
AugustRed5 小时前
Neo4j 图数据库原理 + 应用场景简单介绍
数据库·neo4j
Gl�ria5 小时前
Redis 高可用架构对比
数据库·redis
IpdataCloud6 小时前
高可用的IP数据接口平台有哪些?从可用性、P99延迟到离线部署的评估框架(含代码)
数据库·tcp/ip·ip
呆萌很6 小时前
MySQL 数据库和表的管理操作(命令行)
数据库·mysql
毕业设计7037 小时前
(免费领源码)基于Python的博物馆研学活动管理系统的设计与实现22724- java、PHP、python、C#、小程序、大数据、单片机、网络工程等)
python·mysql·随机森林·pycharm·django·flask·推荐算法