精细权限管制示例
CREATE USER 'strict'@'%' IDENTIFIED BY 'password'; --创建用户
1
GRANT ALL PRIVILEGES ON <数据库名>.* TO 'strict'@'%';
的权限可以拆分为以下具体权限语句。以下是基于数据库层级的完整拆分,覆盖所有操作类型:
一、数据操作权限
- 基础增删改查
GRANT SELECT, INSERT, UPDATE, DELETE ON <数据库名>.* TO 'strict'@'%'; -- 数据读写权限
1
二、结构操作权限
数据库对象管理
GRANT CREATE, ALTER, DROP ON <数据库名>.* TO 'strict'@'%'; -- 创建/修改/删除库、表、视图等结构
1索引与外键
GRANT INDEX, REFERENCES ON <数据库名>.* TO 'strict'@'%'; -- 创建索引和外键约束
1
三、高级功能权限
临时表与锁表
GRANT CREATE TEMPORARY TABLES, LOCK TABLES ON <数据库名>.* TO 'strict'@'%'; -- 临时表操作与并发控制
1存储过程与函数
GRANT EXECUTE, ALTER ROUTINE, CREATE ROUTINE ON <数据库名>.* TO 'strict'@'%'; -- 执行和修改存储程序
1视图管理
GRANT CREATE VIEW, SHOW VIEW ON <数据库名>.* TO 'strict'@'%'; -- 视图操作权限
1事件与触发器
GRANT EVENT, TRIGGER ON <数据库名>.* TO 'strict'@'%'; -- 事件调度和触发器操作
1
四、权限传递(可选)
若需允许用户授权他人,需单独添加:
GRANT GRANT OPTION ON <数据库名>.* TO 'strict'@'%'; -- 允许用户授予他人权限
1
五、完整拆分后的权限列表
将上述所有权限合并后,完整的拆分语句如下:
-- 数据操作
GRANT SELECT, INSERT, UPDATE, DELETE ON <数据库名>.* TO 'strict'@'%';
-- 结构操作
GRANT CREATE, ALTER, DROP, INDEX, REFERENCES ON <数据库名>.* TO 'strict'@'%';
-- 高级功能
GRANT CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, ALTER ROUTINE, CREATE ROUTINE, CREATE VIEW, SHOW VIEW, EVENT, TRIGGER ON <数据库名>.* TO 'strict'@'%';
1
2
3
4
5
6
2
3
4
5
6
注意事项
权限生效:执行
FLUSH PRIVILEGES;
使权限生效。权限范围:
•ALL PRIVILEGES
在数据库层级不包含全局权限(如FILE
、SUPER
),仅限数据库内操作。• 列级权限需单独指定(如
GRANT SELECT(col1)
),默认不包含在ALL PRIVILEGES
中。安全建议:
• 按需授予最小权限,例如生产环境慎用DROP
或GRANT OPTION
。• 若需限制用户仅能本地访问,将
'%'
改为'localhost'
。
编辑 (opens new window)
上次更新: 2025/06/13, 00:51:28