Plantre Plantre
首页
后端
技术
硬件
  • 前端文章

    • HTML
    • CSS
    • JavaScript
  • 技术

    • 技术文档
    • GitHub技巧
    • Nodejs
    • 博客搭建
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

plantre

一个后端开发者
首页
后端
技术
硬件
  • 前端文章

    • HTML
    • CSS
    • JavaScript
  • 技术

    • 技术文档
    • GitHub技巧
    • Nodejs
    • 博客搭建
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 计算机组成原理

  • 操作系统

  • 计算机网络

  • 设计模式

  • Java

  • Spring

  • SpringCloud

  • MySQL

    • MySQL的权限控制
    • 精细权限管制示例
    • localhost和127.0.0.1的区别-MySQL
    • mysql数据类型
    • 当前读和快照读
    • MySQL中MVCC的实现原理
    • MySQL中MVCC具体用了多少个隐藏字段
    • 锁和事务的关系
    • FOR UPDATE锁类型
  • Redis

  • 分布式

  • Zookeeper

  • Dubbo

  • Kafka

  • 数据结构

  • 算法

  • OJ

  • 从道家哲学看计算机?
  • 后端
  • MySQL
plantre
2025-05-03

精细权限管制示例

CREATE USER 'strict'@'%' IDENTIFIED BY 'password';   --创建用户
1

GRANT ALL PRIVILEGES ON <数据库名>.* TO 'strict'@'%'; 的权限可以拆分为以下具体权限语句。以下是基于数据库层级的完整拆分,覆盖所有操作类型:


一、数据操作权限

  1. 基础增删改查
    GRANT SELECT, INSERT, UPDATE, DELETE ON <数据库名>.* TO 'strict'@'%';  -- 数据读写权限
    
    1

二、结构操作权限

  1. 数据库对象管理

    GRANT CREATE, ALTER, DROP ON <数据库名>.* TO 'strict'@'%';  -- 创建/修改/删除库、表、视图等结构
    
    1
  2. 索引与外键

    GRANT INDEX, REFERENCES ON <数据库名>.* TO 'strict'@'%';  -- 创建索引和外键约束
    
    1

三、高级功能权限

  1. 临时表与锁表

    GRANT CREATE TEMPORARY TABLES, LOCK TABLES ON <数据库名>.* TO 'strict'@'%';  -- 临时表操作与并发控制
    
    1
  2. 存储过程与函数

    GRANT EXECUTE, ALTER ROUTINE, CREATE ROUTINE ON <数据库名>.* TO 'strict'@'%';  -- 执行和修改存储程序
    
    1
  3. 视图管理

    GRANT CREATE VIEW, SHOW VIEW ON <数据库名>.* TO 'strict'@'%';  -- 视图操作权限
    
    1
  4. 事件与触发器

    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

注意事项

  1. 权限生效:执行 FLUSH PRIVILEGES; 使权限生效。

  2. 权限范围:
    • ALL PRIVILEGES 在数据库层级不包含全局权限(如 FILE、SUPER),仅限数据库内操作。

    • 列级权限需单独指定(如 GRANT SELECT(col1)),默认不包含在 ALL PRIVILEGES 中。

  3. 安全建议:
    • 按需授予最小权限,例如生产环境慎用 DROP 或 GRANT OPTION。

    • 若需限制用户仅能本地访问,将 '%' 改为 'localhost'。


编辑 (opens new window)
#MySQL
上次更新: 2025/06/13, 00:51:28
MySQL的权限控制
localhost和127.0.0.1的区别-MySQL

← MySQL的权限控制 localhost和127.0.0.1的区别-MySQL→

最近更新
01
集成loki
07-04
02
TCP的ESTABLISHED是什么意思
06-24
03
安装1panel
06-24
更多文章>
Theme by Vdoing | Copyright © 2025-2025 plantre | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式