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

MySQL原生账号权限管理

MySQL 个人账号规划

权限组及用户信息描述

在新的用户规划中,将会创建读权限与读写权限的账号,适应不同的用户,新的权限账号分组:

权限组涉及数据库权限描述权限人群
group_readonly读 gk-prod、kcc-prod、xxl_job 库只读权限组开发、测试、审计人员
group_readwrite读 gk-prod、kcc-prod、xxl_job 库,不能更改表结构读写权限组应用支持、DevOps

更改步骤将会从PreProd环境开始测试,测试没有问题之后再应用到Prod环境上.

创建权限组及权限

A) 创建权限组

-- A.1 创建只读组 (group_readonly)
CREATE ROLE IF NOT EXISTS `group_readonly`;
-- A.2 创建读写组 (group_readwrite)
CREATE ROLE IF NOT EXISTS `group_readwrite`;

B)为“权限组”分配权限

-- B.1 分配 'group_readonly' 权限
-- 授予对三个业务库的只读权限
GRANT SELECT ON `gk-prod`.* TO `group_readonly`;
GRANT SELECT ON `kcc-prod`.* TO `group_readonly`;
GRANT SELECT ON `xxl_job`.* TO `group_readonly`;
-- 授予查看系统状态和慢查询的权限
GRANT SELECT ON `performance_schema`.* TO `group_readonly`;
GRANT SELECT ON `sys`.* TO `group_readonly`;
GRANT PROCESS ON *.* TO `group_readonly`; -- 允许 SHOW PROCESSLIST-- B.2 分配 'group_readwrite' 权限
-- (最佳实践) 首先,让 'group_readwrite' 继承 'group_readonly' 的所有权限
GRANT `group_readonly` TO `group_readwrite`;-- 在只读的基础上,额外添加 DML(写)权限
-- (注意:这里不包含 CREATE, ALTER, DROP 等 DDL 权限)
GRANT INSERT, UPDATE, DELETE ON `gk-prod`.* TO `group_readwrite`;
GRANT INSERT, UPDATE, DELETE ON `kcc-prod`.* TO `group_readwrite`;
GRANT INSERT, UPDATE, DELETE ON `xxl_job`.* TO `group_readwrite`;

C)创建用户并分配到“只读组” (group_readonly)

-- 用户: fu.bai
CREATE USER 'fu.bai'@'%' IDENTIFIED BY 'REPLACE_WITH_A_SECURE_PASSWORD_1';
GRANT `group_readonly` TO 'fu.bai'@'%';
SET DEFAULT ROLE `group_readonly` TO 'fu.bai'@'%';

D)创建用户并分配到“读写组” (group_readwrite)

-- 用户: lubao.xu
CREATE USER 'lubao.xu'@'%' IDENTIFIED BY 'REPLACE_WITH_A_SECURE_PASSWORD_7';
GRANT `group_readwrite` TO 'lubao.xu'@'%';
SET DEFAULT ROLE `group_readwrite` TO 'lubao.xu'@'%';FLUSH PRIVILEGES;

E)授予管理员管理权限

让 admin 和 sys_admin 账号有权将这些“组”分配给未来的新成员。

-- 授予 admin 角色管理权限
GRANT `group_readonly`, `group_readwrite` TO 'admin'@'%' WITH ADMIN OPTION;
-- 授予 sys_admin 角色管理权限
GRANT `group_readonly`, `group_readwrite` TO 'prod_rds'@'%' WITH ADMIN OPTION;-- 刷新权限
FLUSH PRIVILEGES;

维护方式(新成员&授权新库)

在有新成员加入或者需要调整用户的权限时候,使用如下方式进行调整.

A. 当有新开发入职时 (只读)

CREATE USER 'new_dev_user'@'%' IDENTIFIED BY 'REPLACE_WITH_A_SECURE_PASSWORD';
GRANT `group_readonly` TO 'new_dev_user'@'%';
SET DEFAULT ROLE `group_readonly` TO 'new_dev_user'@'%';

B. 需要访问新的数据库

GRANT SELECT ON `new_db`.* TO `group_readonly`;

http://www.dtcms.com/a/577707.html

相关文章:

  • C#中关于ContextMenuStrip批量添加Item的问题
  • 从线程基础到线程池
  • Android selinux policy单独编译与调试
  • XML介绍
  • 营销推广运营 网站wordpress关闭主循环
  • Linux MTD系统深度解析:从原理到实践
  • css第二天
  • Spring Boot 3.2 高性能架构实战:虚拟线程、原生镜像与响应式编程全解析
  • [vulhub靶机通关]DC-5(文件包含_sreen提权_)
  • 网站建设数据收集方法网站没建好可以备案吗
  • 返利网站开发计划书免费创建社区论坛网站
  • [Avoid-MPC] AvoidanceStateMachine | `Step`心跳函数 | Callback设计
  • Web 前端开发调试实战,从桌面浏览器到真机 WebView 的全链路可视化调试指南
  • FreeRTOS函数说明
  • 营销软件网站建设陕西省建设网官网首页
  • 网站团购功能怎么做wordpress移除工具栏
  • 确定性革命:从观察宇宙到编程现实
  • 【模板】二维前缀和 (牛客)
  • 品牌网站设计公司哪家好百度seo整站优化公司
  • wordpress做单页销售网站西部网站管理助手 伪静态
  • 如何用faiss强化基于mysql的文本检索
  • C++面试4-线程同步
  • 【LeetCode热题100(62/100)】搜索二维矩阵
  • 并发编程、锁、线程池知识整理<1>
  • 11种方法解决iPhone上共享相册不显示的问题[2025]
  • php网站制作教程美食网站开发的技术简介
  • Spring整合单元测试
  • 深入浅出理解克尔效应(Kerr Effect)及 MATLAB 仿真实现
  • 【区块链】二、案例1:汽车供应链区块链
  • 影刀RPA一键批量上传商品视频!AI智能处理,效率提升2000%[特殊字符]