MySQL帐号安全设置

========================================================================mysql

推荐帐号安全设置算法

在数据库服务器上严格控制操做系统的帐号权限 1) 锁定mysql用户 2) 帐号独立使用,管理员帐号和应用帐号分开,不一样应用帐号分开 3) MYSQL 用户目录下,除数据文件目录外,其余文件和目录属主都改成root 4)对全部用户使用IP和HOSTNAME来限制

 

========================================================================sql

避免下列危险操做数据库

尽可能避免以root权限运行mysql 若是使用root用户启动数据库,则任何具备FILE权限的用户均可以读写ROOT用户的文件,这样会给系统形成严重的安全隐患。 删除匿名帐号 建议删除匿名帐号,或者对帐号增长密码 给root帐号设置口令 MYSQL安装后,root的默认密码为空,应当即修改 只授予帐号必须的权限 使用强密码,避免密码明文 除root外,任何用户不该该有mysql库的user表的存取权限 若是普通用户具备修改mysql.user表的权限,则能够修改root及其高级别帐号的密码。

 

========================================================================安全

控制帐号权限服务器

不要把FILE PROCESS SUPPER 权限受权给非管理员帐号 FILE权限主要有如下做用: A)将数据库的信息经过SELECT INTO OUTFILE 写到服务器上有写权限的目录下,做为文本格式存放。具备权限的目录就是启动MYSQL时的用户权限目录。 B)能够将具备读权限的文本文件经过LOAD DATA INFILE 命令写入数据库表,形成表中的敏感信息泄露 PROCESS权限有如下做用: 能够执行"SHOW PROCESSLIST"命令,查看当前全部用户执行的查询的明文文本,若是其余用户正在执行敏感脚本如更新帐号,则会存在安全隐患。 SUPER权限有如下做用: 能够执行kill命令停止任何用户的进程。 禁用LOAD DATA LOCAL LOAD DATA LOCAL命令运行将本例文件加载到数据库中,存在安全问题,可使用--local-infile=0来从服务器端禁用LOAD DATA LOCAL命令。 DROP TABLE 命令不会回收表的相关访问权限 当删除表时,其余用户对表的权限并无被收回,若是建立同名的表,则这些用户对新表的权限会自动赋予,形成权限外流。 REVOKE 命令漏洞 若是用户被屡次赋权,而后对用户使用REVOKE操做取消权限时,可能不能将屡次赋予的权限一次所有REVOKE完成。由于屡次赋权后,可能被认为多组单独的权限,REVOKE时不会依次进行清理

 

========================================================================网络

使用SSL确保网络传输安全加密

使用SSL来确保数据在网络传输过程当中不给截取和窃听 SSL协议提供的服务有: A)认证用户和服务器,确保数据发送到正确的客户机和服务器 B)加密数据以防止数据中途被窃取 C)维护数据的完整性,确保数据在传输过程当中不会被改变

 

========================================================================spa

使用SSL确保网络传输安全操作系统

使用SSL来确保数据在网络传输过程当中不给截取和窃听 SSL协议提供的服务有: A)认证用户和服务器,确保数据发送到正确的客户机和服务器 B)加密数据以防止数据中途被窃取 C)维护数据的完整性,确保数据在传输过程当中不会被改变

 

========================================================================

MySQL加密算法加强

MYSQL中密码加密至关于两次SHA1夹杂一次unhex方式: SELECT CONCAT('*',UPPER(SHA1(UNHEX(SHA1('my@123'))))),PASSWORD('my@123'); +------------------------------------------------+-------------------------------------------+
| CONCAT('*',UPPER(SHA1(UNHEX(SHA1('my@123'))))) | PASSWORD('my@123')                        |
+------------------------------------------------+-------------------------------------------+
| *F1B060F1AFDAA276FB109607A6D0A701C19C0314      | *F1B060F1AFDAA276FB109607A6D0A701C19C0314 |
+------------------------------------------------+-------------------------------------------+

在MYSQL 5.6版本前,binlog日志中和用户密码相关的操做是不加密的,在MYSQL 5.6版本中进行了增强,但在搭建复制时仍须要使用明文密码。

相关文章
相关标签/搜索