MySQL数据库账号划分及权限

一,针对数据库管理和使用人员做了系统权限和权限控制访问策略。
所有的数据系统登陆,由堡垒机,必须通过4A账号登陆。目前登陆方式有三种,1.主机登陆,2.数据评审端登录(archery等),3.程序直连登陆。
1.1,主机登录,主要针对数据系统管理维护人员,通过切换至对应的数据账号下执行操作,此类操作界面只能有数据库维护人员可以登陆,非数据库维护人员禁止使用(没有权限)此界面。
1.2, 业务开发测试人员,对生产数据系统有对应需求时,通过实名制登录archery数据评审平台后,在根据对应的服务类只读用户进行数据类查询。
如涉及数据修改操作,均需以工单的方式,申请 - 业务审核 - DBA审核 - 执行 - 结果检查 - 反馈 进行处理。
1.3 ,程序直连登录,将连接的账号和密码固定到程序中,或者存在公共的配置库中。根据程序的操作需求,赋予账号不同的权限,账号的默认权限是insert、delete、update、select,如果需要其他权限,必须特殊申请,并评估其权限操作带来的风险。此类账号专用于程序,任何个人不得直接使用。

二,权限规则策略:
根据国家《信息安全等级保护管理办法》规定和结合公司内部《信息系统权限分配管理》要求,访问权限控制按权限最低原则执行。
2.1,个人账号:
通过实名堡垒机及archery评审平台登录后,通过特定账户访问处理。
2.2,程序账号:
权限按需最低隔离原则->长期授权指定程序 -> 账号名原则上与数据库名称一致(dbname_rw 用于dml,dbname_ro 用于读,读写分离)。
2.3, 特定账户:
2.3.1 super账号,只给高可用管理平台授权,仅限本机登录,仅用于自动故障处理,重启,上线操作,权限维护;
2.3.2 数据库管理账号,只给启停复制、启停数据库、processlist、kill、修改参数等管理权限,没有DDL、DML权限,仅限本机登录,DBA日常运维用;
2.3.3 replic账号,用于备份,仅有replication等复制权限;
2.3.4 bakuser账号,用于备份,仅show,dump等备份权限;
2.3.5 工单账号,仅给创建、修改表、增删索引等业务提单做DDL的权限,仅给工单系统使用;
2.3.6 etl_sync账号,用于数据平台抽取,仅有readonly到表权限;
2.3.7 核对账号,只给做数据核对的机器授权查询数据;
2.3.8 业务rw账号,给每个业务一个帐户,只有增改查权限;
2.3.9 业务ro账户,给每个业务一个帐户,只有查询权限;

# root 账号    --本机登录

-- 腾讯云root,或自荐root 账号

# dbname_rw 业务读写账号  --ip.% 限制登录

Grant insert,update,delete,select

# dbname_ro 业务只读账号  --ip.% 限制登录

Grant select

# archery工单账号        --ip 限制登录

Grant alter ,create ,execute

# bakuser 备份账号       --ip 限制登录

# etl_sync 数据只读抽取账号 --ip 限制登录

# checkro核对账号  --ip.% 限制登录

# replicate 同步复制账号  --ip 限制登录

# dba_check dba维护账号  --ip.% 限制登录

三,数据处理,以工单方式发起流程

1,生产系统数据处理,主要通过archery数据评审平台以工单方式实现,主要为:发起人提交工单->业务审核->DBA审核->执行-验证 - 反馈 六部分组成。
2,数据平台抽取,申请OPS通过后,由专用账户etl_sync抽取同步,权限粒度到表抽取。

四,实际权限策略:

-- 创建数据库:
create database martindb default character set utf8mb4 collate utf8mb4_unicode_ci;

-- 创建用户:
create user sap_service_rw@'%' identified by 'password';
% 最小原则: IP < Ip段 < % 符号
create user sap_service_ro@'%' identified by 'password';

-- 用户授权:
只读用户库名_ro
service_ro:
grant show databases ,show view on . to service_ro@'%';
grant select on sap_service.* to Service_ro@'%';
grant select on mysql.proc to service_ro@'%';


读写用户库名_rw
service_rw:
grant select on mysql.proc to 用户@'%';
GRANT SHOW DATABASES,show view,process ON 库名.*  TO 'cloud'@'%' ;
grant select,index,create,update,insert,alter,execute,create view,create routine,alter routine,delete,CREATE TEMPORARY TABLES on service.* to 用户@'%' ;

五,实际权限

权限

权限级别

权限说明

CREATE

数据库、表或索引

创建数据库、表或索引权限

DROP

数据库或表

删除数据库或表权限

GRANT OPTIO

赋予权限选项

REFERENCES

数据库或表

ALTER

更改表,比如添加字段、索引等

DELETE

删除数据权限

INDEX

索引权限

INSERT

插入权限

SELECT

查询权限

UPDATE

更新权限

CREATE VIEW

视图

创建视图权限

SHOW VIEW

视图

查看视图权限

ALTER ROUTINE

存储过程

更改存储过程权限

CREATE ROUTINE

存储过程

创建存储过程权限

EXECUTE

存储过程

执行存储过程权限

FILE

服务器主机上的文件访问

文件访问权限

CREATE TEMPORARY TABLES

服务器管理

创建临时表权限

LOCK TABLES

服务器管理

锁表权限

CREATE USER

服务器管理

创建用户权限

PROCESS

服务器管理

查看进程权限

RELOAD


 
 

服务器管理

执行flush-hosts, flush-logs, flush-privileges, flush-status, flush-tables, flush-threads, refresh, reload等命令的权限

REPLICATION CLIENT

服务器管理

复制权限

REPLICATION SLAVE

服务器管理

复制权限

SHOW DATABASES

服务器管理

查看数据库权限

SHUTDOWN

服务器管理

关闭数据库权限

SUPER

服务器管理

执行kill线程权限

权限分布

可能的设置的权限

表权限

'Select', 'Insert', 'Update', 'Delete', 'Create', 'Drop', 'Grant', 'References', 'Index', 'Alter'

列权限

'Select', 'Insert', 'Update', 'References'

过程权限

'Execute', 'Alter Routine', 'Grant'

另外,关于with _ option 的几个选项:

grant option :       允许用户将该权限授予其他用户.   with grant option.
max_queries_per_hour :     允许用户每小时执行的查询语句数量。
max_updates_per_hour:     允许用户每小时执行更新语句的数量。
max_connections_per_hour:   允许用户每小时连接的次数。
max_user_connections  : 允许用户同时连接服务器数量。

六,2.3, 特定账户授权:

2.3.1 super账号,只给高可用管理平台授权,仅限本机登录,仅用于自动故障处理,重启,上线操作,权限维护;


2.3.2 数据库管理账号,只给启停复制、启停数据库、processlist、kill、修改参数等管理权限,没有DDL、DML权限,仅限本机登录,DBA日常运维用;


2.3.3 replic账号,用于备份,仅有replication等复制权限;

REPLICATION CLIENT,REPLICATION SLAVE 

2.3.4 bakuser账号,用于备份,仅show,dump等备份权限;

物理备份工具:innobackupex:   grant lock tables,reload,process,replication client,super on *.* to  user

逻辑备份工具:mysqldump,mysqlpump,mydumper等等 ;

 grant lock tables,reload,process,replication client,super,select,event,trigger,show view on *.* to user 


2.3.5 工单账号,仅给创建、修改表、增删索引等业务提单做DDL的权限,仅给工单系统使用;

grant select, show databases ,show view,create,alter,delete,insert,update  on  user 

-- 这里可以使用一个用户,通过archery 不同组资源管理 访问。

2.3.6 etl_sync账号,用于数据平台抽取,仅有readonly到表权限;

 – grant  select  , show database,show view  

  
2.3.7 核对账号,只给做数据核对的机器授权查询数据;

  select 


2.3.8 业务rw账号,给每个业务一个帐户,只有增改查权限;

  按需 最小分配原则


2.3.9 业务ro账户,给每个业务一个帐户,只有查询权限;

  select,show database , show view ,

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值