一,针对数据库管理和使用人员做了系统权限和权限控制访问策略。
所有的数据系统登陆,由堡垒机,必须通过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 ,