前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >生产环境mysql用户以及权限规划

生产环境mysql用户以及权限规划

原创
作者头像
wangwei-dba
修改2021-02-07 16:13:08
1.7K0
修改2021-02-07 16:13:08
举报
文章被收录于专栏:mysql-dba

原则:为生产库建立不同的用户管理用户业务用户

管理用户:超级管理用户、dba运维用户、备份用户、监控用户、复制用户 (克隆用户)

业务用户:每个业务模块一个用户,命名可以是user_业务模块名

只读查询用户:允许开发人员定位问题查询生产库的只读权限

权限分配原则:根据最小原则给每个用户满足需求的最小权限,要是不够再增加

mysql用户和权限牵涉到的表

user : 包含用户账户,全局权限

db: 数据库级别的权限表

tables_priv: 表级别的权限表

columns_priv: 字段级别的权限表

procs_priv: 存储过程和函数权限表

proxies_priv: 代理用户权限表

mysql用户包括 请求连接的主机名和用户名

连接的主机名不要使用% 使用具体的ip或者域名来限定连接

管理权限:授权方式使用*.*

代码语言:javascript
复制
create user
event
process
proxy
reload
replication clinet
replication slave
show databases
shutdown
super
create tablespace
usage
grant option

数据库级别权限:授权方式可以*.* db.*

代码语言:javascript
复制
create
create routine
create temporary tables
drop
loack tables
references

数据库对象级别的权限 授权方式可以是*.* db.* db.table_name

代码语言:javascript
复制
alter
alter routine
create view
delete
execute
file
index
insert
select

权限还可以按如下划分

开发权限:

代码语言:javascript
复制
delete
insert 
select 
update
alter
create temporary tables
trigger
create view
show view
alter routine
create routine
execute
index
event

管理权限:

代码语言:javascript
复制
create
file
drop
lock tables
grant option
create tablespace
create user
process
proxy
reload
replication client
replication slave
show databases
shutdown
super
usage

创建用户:

保留超级管理员root@localhost用户 修改复杂的密码包含大小写字母数字特殊字符

代码语言:javascript
复制
alter user 'root'@'localhost' identified by 'YWgui123@qwaszx'

dba运维用户:

代码语言:javascript
复制
create user 'yw_dbauser'@'172.12.2.%' identified by 'Guijiyw@cluster2019';
GRANT INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, PROCESS, FILE, INDEX, ALTER, SHOW DATABASES, SHOW VIEW, CREATE USER ON *.* TO `yw_dbauser`@`172.12.2.%`
show grants for 'yw_dbauser'@'172.12.2.%' 

备份用户:

代码语言:javascript
复制
create user 'xtrabackup_user'@'172.12.2.%' identified by 'xtra_dbQWE@!';
grant RELOAD,PROCESS,backup_admin,select on  *.* to 'xtrabackup_user'@'172.12.2.%';

监控用户:

代码语言:javascript
复制
create user monitor@'172.12.2.%' identified by 'monitor@v3';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER ON *.* TO `monitor`@`%`;

复制用户:

代码语言:javascript
复制
create user 'repl'@'172.12.2.%' identified by 'guiji_repl@123QAZ';
grant replication slave on *.* to 'repl'@'172.12.2.%' ;

业务用户:

代码语言:javascript
复制
create user 'user_mode01'@'172.12.2.%' identified by 'mode01_epl@123QAZ';
grant select,insert,delete,update,execute,show view,event on mode01.* to 'user_mode01'@'172.12.2.%';
......

只读查询用户:

代码语言:javascript
复制
create user 'user_read'@'172.12.2.%' identified by 'read_epl@123QAZ';
grant select on mode01.* to 'user_mode01'@'172.12.2.%';

show PRIVILEGES 查看权限

mysql账号访问控制认证

第一个阶段:账号和密码认证

第二个阶段:权限检查

用户认证过程中mysql会把用户权限表加载到内存中

账号的匹配 先按照主机名字段排序,然后按用户名排序,用户账号根据排序后信息进行匹配

权限变更后的生效

1.对于表级别和字段级别的权限,修改并加载权限表之后,对于已经建立的客户端连接,会在对表,字段的下一个请求中生效,对于新建立的连接立即生效

2.对于库级别的权限,修改并加载权限表之后,对于已经建立的客户端连接,会在下一次使用use db_name语句时生效,,对于新建立的连接立即生效

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档