MySQL数据库安全配置.doc
文本预览下载声明
MySQL数据库安全配置规范
2010年11月概述
适用范围
本规范适用于中国电信通信网、业务系统和支撑系统的MySQL 数据库。本规范明确了MySQL数据库安全配置方面的基本要求。
安全配置要求
账号
编号:1
要求内容 以普通帐户安全运行mysqld,禁止mysql以root帐号权限运行,攻击者可能通过mysql获得系统root超级用户权限,完全控制系统。 操作指南: 1、参考配置操作
可以通过在/etc/f中设置:
[mysql.server]
user=mysql
2、补充操作说明 检查方法: 1、判定条件
禁止以root账号运行mysqld;
2、检测操作
检查进程属主和运行参数是否包含--user=mysql类似语句:
# ps –ef | grepmysqld
#grep -i user /etc/f
编号:2
要求内容 应按照用户分配账号,避免不同用户间共享账号 操作指南 1.参考配置操作
//创建用户
mysql mysql insert into mysql.user(Host,User,Password,ssl_cipher,x509_issuer,x509_sub
ject) values(localhost,pppadmin,password(passwd),,,);
这样就创建了一个名为:phplamp 密码为:1234 的用户。
然后登录一下。
mysqlexit;
@mysql -u phplamp -p
@输入密码
mysql登录成功
2.补充操作说明
检测方法 1.判定条件
不用名称的用户可以连接数据库
2.检测操作
使用不同用户连接数据库
编号:3
要求内容 应删除或锁定与数据库运行、维护等工作无关的账号 操作指南 1.参考配置操作
DROP USER语句用于删除一个或多个MySQL账户。要使用DROP USER,必须拥有mysql数据库的全局CREATE USER权限或DELETE权限。账户名称的用户和主机部分与用户表记录的User和Host列值相对应。
使用DROP USER,您可以取消一个账户和其权限,操作如下:
DROP USER user;
该语句可以删除来自所有授权表的帐户权限记录。
2.补充操作说明
要点:
DROP USER不能自动关闭任何打开的用户对话。而且,如果用户有打开的对话,此时取消用户,则命令不会生效,直到用户对话被关闭后才生效。一旦对话被关闭,用户也被取消,此用户再次试图登录时将会失败。
检测方法 检侧操作:
mysql 查看所有用户的语句
输入指令select user();
依次检查所列出的账户是否为必要账户,删除无用户或过期账户。
口令
编号:1
要求内容 检查帐户默认密码和弱密码 操作指南 1.参考配置操作
修改帐户弱密码
如要修改密码,执行如下命令:
mysql update user set password=password(test!p3) where user=root;
mysql flush privileges;
2.补充操作说明 检测方法 1.判定条件
密码长度至少8位,并包括数字、小写字母、大写字母和特殊符号4类中至少3类。
2.检测操作
检查本地密码:(注意,管理帐号root默认是空密码)
mysql use mysql;
mysql select Host,User,Password,Select_priv,Grant_priv from user;
权限设置
编号:1
要求内容 在数据库权限配置能力内,根据用户的业务需要,配置其所需的最小权限。 操作指南 参考配置操作
合理设置用户权限
补充操作说明 检测方法 1 判定条件
确保数据库没有不必要的或危险的授权
2 检测操作
查看数据库授权情况:
mysql use mysql;
mysql select * from user;
mysqlselect * from db;
mysqlselect * from host;
mysqlselect * from tables_priv;
mysqlselect * from columns_priv;
回收不必要的或危险的授权,可以执行revoke命令:
mysql help revoke
Name: REVOKE
Description:
Syntax:
REVOKE
priv_type [(column_list)]
[, priv_type [(column_list)]] ...
ON [object_type]
{
*
| *.*
显示全部