mysql 生产环境 权限_MySQL生产环境安全规范

一、Mysql服务器安全规范

1. 禁止应用直连DB,一般通过代理访问

2. 禁止DB公网访问。

3. 禁止生产和办公互通,需生产环境和办公环境隔离。

4. Linux系统初始化安全选项:

1)、一些alias,写入/etc/profile,防止误操作

alias c='clear'

alias cp='cp -i'

alias l.='ls -d .* --color=auto'

alias ll='ls -l --color=auto'

alias ls='ls --color=auto'

alias mv='mv -i'

alias rm='rm -i'

alias mysql='mysql -U'

其中mysql -U,防止update和delete没有指定条件,拒绝操作。

2)、删除linux操作日志信息、mysql操作历史记录,避免被***。

rm .bash_history .mysql_history

ln -s /dev/null .bash_history

ln -s /dev/null .mysql_history

3)、避免"Too many open files"

OS限制:cat /etc/security/limits.conf,mysql用户能够打开65535个文件描述符

mysql soft nofile 65535

mysql hard nofile 65535

my.cnf参数修改:

open_files_limit = 65535

innodb_open_files=65535

5. Mysql初始化配置安全选项:

1)、合理规划目录结构,日志目录顺序写建议机械盘(binlog/slowlog/relaylog),数据目录随机写建议ssd。

2)、Mysql相关目录设置专用mysql组和用户,Mysql后台启动方式不能以root来启动,比如通过mysql用户 。

3)、设置bind-address为内网本机IP。

4)、修改Mysql默认服务端口号,不推荐使用3306,不同业务设置不同的端口号。

5)、通过修改max_connections和max_user_connections来控制最大连接数,过载保护。

6)、启用safe-user-create,用户不能用GRANT语句创建新用户,除非用户有mysql.user表的INSERT权限。

7)、禁止local-infile=1,打开load data local file权限,避免数据泄漏和******。

8)、禁止skip-grant-tables启动,防止mysql绕过权限系统

9)、配置加上skip-name-resolve,防止主机名不被解析。

10)、禁止skip-networking,其它机器不能使用tcp/ip连接。

11)、禁止symbolic-links=1,关闭软链接功能。

二、Mysql帐号管理安全策略和Mysql权限相关的系统表:

1. mysql.USER表

2. mysql.DB表

3. mysql.TABLES_PRIV表

4. mysql.COLUMNS_PRIV表

自上而下,逐级验证,逐级进行账户权限的粒度控制

Mysql初始化:

1. 删除线上密码长度小于16的帐号。

2. 删除非root账户

3. 删除非localhost和127.0.0.1账户。

4. 删除test数据库

5. 账号区分:监控帐号、管理帐号、复制帐号、备份帐号、应用帐号

1)、监控帐号(localhost和127.0.0.1):

GRANT SELECT,PROCESS,REPLICATION CLIENT

2)、备份帐号(localhost和127.0.0.1):

GRANT SELECT,LOCK TABLES,RELOAD

3)、复制帐号(对应主库ip):

GRANT REPLICATION SLAVE,REPLICATION CLIENT

4)、管理帐号(对应代理ip):

GRANT ALL PRIVILEGES

5)、root帐号

root密码采用强密码策略,至少32位随机密码,推荐使用pwgen和makepasswd来生成32位随机密码,包含大小写、数字、字母、特殊字符。

root帐号只授权localhost和127.0.0.1,不得授予%权限。

root帐号建议每3个月修改一次,不同实例,设置不同的root密码。

6)、应用帐号

a. 应用帐号不得拥有Super、Create、Drop、File,Grant,Reload,Shutdown,Process等权限。

b. 最小权限原则:select,insert,update,delete权限,禁止应用帐号权限设置为all。

c. 应用帐号不得拥有系统数据库(mysql)的任何权限,不能使用*.*来授权。

d. 应用帐号只给所属应用的数据库授权,只给其所属应用的IP或代理授权。

e. mysql从库必须添加read-only,只给select权限,严禁all,导致只读失效。

f. 应用帐号密码策略同root,建议每3个月修改一次。

三、Mysql数据安全策略

1. 物理(xtrabackup)和逻辑(mysqldump)相结合的备份策略,全备+增量+异地。

2. 数据库备份文件定期回放,定期验证备份的可恢复性。

3. 针对重要业务系统建立delay数据库或者采取Linux初始化时设置lvm策略,可快照闪回。

4. 假设Binlog Server,遇到紧急情况可数据恢复。

PS:Mysql命令行提示配置

mysql -uroot -p123456 --prompt="Mysql-\\v->[\\r:\\m:\\s] [\\u@\\h:\\d] >"

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值