当前位置: 首页 > news >正文

MySQL权限管理:层级化作用域、权限分类、操作命令

1、权限作用域与类型

1.1、权限作用域

MySQL 的权限体系基于层级化作用域设计,权限的生效范围从「全局」到「单一对象」逐步细化。理解作用域是管理权限的基础,共分为以下 5 个层级:

  • 全局级(Global)
    • 作用范围:整个 MySQL 服务器实例(所有数据库、表、用户)。
    • 典型场景:用于数据库管理员(DBA)的全局管理操作,如创建用户、重启服务等。
  • 数据库级(Database)
    • 作用范围:单个数据库(如 mydb)内的所有表、视图、索引等对象。
    • 典型场景:授予某用户对特定数据库的读写权限(如允许操作 orders_db 库下的所有表)。
  • 表级(Table)
    • 作用范围:单个表(如 users 表)。
    • 典型场景:限制用户仅能操作某张表(如只允许读取 products 表,禁止访问同库下的其他表)。
  • 列级(Column)
    • 作用范围:表中的特定列(如 users 表的 email 列)。
    • 典型场景:敏感数据控制(如允许用户查询 employees 表的 name 列,但禁止访问 salary 列)。
  • 例程级(Routine)
    • 作用范围:存储过程、函数等数据库例程。
    • 典型场景:控制用户对存储过程的执行权限(如允许调用 calculate_tax() 函数)。

1.2、核心权限分类

1.2.1、管理权限(服务器级控制)

管理权限用于控制 MySQL 服务器的底层功能或用户体系,与具体数据库中的数据操作无关,分为用户管理服务器管理两类。

1.2.1.1、用户管理权限
权限名称作用域说明
CREATE USER全局级创建、修改或删除用户账号(如 CREATE USER 'new_user'@'localhost')。
GRANT OPTION所有层级允许用户将自己拥有的权限转授给其他用户(需显式授权,不包含在 ALL PRIVILEGES 中)。
1.2.1.2、服务器管理权限
权限名称作用域说明
PROCESS全局级查看服务器所有运行线程(如 SHOW PROCESSLIST),用于排查性能问题。
RELOAD全局级执行刷新操作(如 FLUSH PRIVILEGES 刷新权限表、FLUSH TABLES 刷新表缓存)。
SHUTDOWN全局级关闭 MySQL 服务器(高危权限,仅限超级管理员)。
SUPER全局级高级管理权限,允许终止线程(KILL THREAD)、设置全局变量(SET GLOBAL var)等。
FILE全局级允许读取或写入服务器文件系统(如 LOAD DATA INFILE 导入数据,存在文件系统安全风险)。

1.2.2、数据库权限

数据库权限直接作用于数据或数据库对象,分为 数据操作权限对象定义权限 ,支持在全局、数据库、表、列、例程等多个作用域生效。

1.2.2.1、数据操作权限(CRUD 核心操作)
权限名称作用域说明
SELECT全局/数据库/表/列查询数据(列级权限可指定允许查询的列,如 SELECT(id, name) ON users)。
INSERT全局/数据库/表插入新数据行(表级权限仅作用于指定表)。
UPDATE全局/数据库/表/列更新数据(列级权限可指定允许更新的列,如 UPDATE(salary) ON employees)。
DELETE全局/数据库/表删除数据行(仅作用于表级及以上,无列级删除)。
1.2.2.2、对象定义权限(结构管理)
权限名称作用域说明
CREATE全局/数据库/表创建对象:全局级可创建数据库,数据库级可创建表/视图,表级无此权限(需数据库级权限)。
ALTER数据库/表修改表结构(如添加字段、重命名表,仅作用于指定数据库或表)。
DROP全局/数据库/表删除对象:全局级可删除数据库,数据库级可删除表,表级无此权限(需数据库级权限)。
INDEX数据库/表创建或删除表索引(需先拥有表的 ALTERCREATE 权限)。
LOCK TABLES数据库/表手动锁定表(如 LOCK TABLES tbl READ,需配合 SELECT/INSERT 等权限使用)。
1.2.2.3、例程级权限(存储过程/函数)
权限名称作用域说明
EXECUTE例程级允许调用存储过程或函数(如 CALL db.pr_calculate())。
ALTER ROUTINE例程级允许修改例程定义(如重命名存储过程、修改函数代码)。

1.2.3、特殊:ALL PRIVILEGES

ALL PRIVILEGES 是权限集合,非具体权限,授予 当前作用域下 的所有权限(管理权限 + 数据库级权限),但不包含 GRANT OPTION 和少数特殊权限(如 FILE 需单独授予)。


2、SHOW GRANTS查看权限

使用 SHOW GRANTS FOR 'user'@'host'; 列出该用户所有权限,格式为可重用的 GRANT 语句。

直接执行 SHOW GRANTS; 可查看当前用户的权限。

在这里插入图片描述


3、GRANT 分配权限

GRANT privilege_listON scopeTO 'user'@'host'[IDENTIFIED BY 'password'][WITH GRANT OPTION];
  • privilege_list:指定授予的权限列表,多个权限用逗号分隔。
  • scope:权限作用的区域,支持以下级别:
    • 全局级别:*.*(所有数据库的所有对象)
    • 数据库级别:db_name.*(指定数据库的所有对象)
    • 表级别:db_name.table_name(指定表)
    • 列级别:db_name.table_name(column1, column2)(指定表的特定列)
    • 存储过程 / 函数级别:PROCEDURE db_name.proc_nameFUNCTION db_name.func_name
  • 'user'@'host'
    • user是被授权的用户
    • host 支持 %(任意主机)、localhost(本地)、具体IP地址、域名。
  • IDENTIFIED BY:可选参数,用于创建用户时设置密码。
  • WITH GRANT OPTION:允许被授权用户继续授权。

示例:

-- 授予数据库级权限
GRANT SELECT, INSERT, UPDATE ON sales_db.* TO 'analyst'@'localhost';-- 授予表级权限
GRANT DELETE ON sales_db.orders TO 'manager'@'%';-- 授予列级权限
GRANT SELECT(customer_name, customer_email) ON sales_db.customers TO 'support'@'localhost';

4、REVOKE 撤销权限

REVOKE privilege_listON scopeFROM 'user'@'host';

示例:

REVOKE UPDATE, DELETE ON sales_db.* FROM 'analyst'@'localhost';
REVOKE 'read_only' FROM 'jane'@'localhost';

5、最佳实践与安全指南

  • 最小权限原则 :仅授予完成任务的最低权限和最小作用域(如仅 SELECT 单表,而非全局权限),对敏感数据列级控制,且仅授权给特定角色。
  • 权限分层管理:分为 管理员账号普通用户,仅管理员可拥有 GRANT OPTIONFILE 等权限。
  • 限制访问来源:通过 'user'@'host' 限定登录IP(如 'app'@'192.168.1.%' 仅限指定网段)。
  • 强密码策略:使用复杂密码(含大小写、数字、符号),定期更换。
  • 加密连接(SSL/TLS)GRANT ... REQUIRE SSL,防止中间人攻击。
  • 定期审计清理:执行 SHOW GRANTS 检查权限,删除无效账号(DROP USER)。
  • 监控高危操作:开启审计日志,追踪 GRANTDROPSHUTDOWN 等操作。

相关文章:

  • 5GC网络中的QoS Flow级QoS控制
  • Baklib领跑五款知识管理工具评测
  • 五窍排泄物的形成机制
  • 【JSON 】全面掌握JSON的相关知识
  • GitHub Copilot 现已支持 AI Coding Agent
  • 四、生活常识
  • Mysql 中的锁
  • 直流电机 pwm 调速
  • 人工智能数学基础实验(二):奇异值分解(SVD)-图像处理
  • LangChain4j 项目实战——idea快捷键搜索
  • Scratch游戏 | 枪战游戏
  • 自动化安全脚本学习
  • 动态规划(6)下降路径最小值
  • C++ gtest单元测试
  • golang逃逸分析
  • AI 集成
  • C/C++ 结构体:. 与 -> 的区别与用法及其STM32中的使用
  • 基于MATLAB实现传统谱减法以及两种改进的谱减法(增益函数谱减法、多带谱减法)的语音增强
  • mysql:MVCC机制
  • leetcode 39. Combination Sum和40. Combination Sum II
  • 建一个多用户团购网站需要多少钱/个人怎么接外贸订单
  • 港珠澳大桥网站建设/个人免费建站系统
  • 国内餐饮类网站欣赏/上海seo推广整站
  • 全面启动门户网站建设/网站制作公司官网
  • 学校网站建设措施/自己建网站需要钱吗
  • wordpress登录用户可以搜索/优化师和运营区别