mysql安全设置教程?
阅读:3542 2016-04-28 15:52:11

mysql安全设置

mysql安全设置我就直接说呢,相对mysql+2003安全设置的话基本设置和mssql设置差不多的,对运行账号进行降权处理
①添加一个mysql启动账号,设置此用户属于为Guest组;
②找到mysql目录赋予administrators组、system、新加的用户完全控制权限:
③设置mysql服务的启动账号为新加的用户,重启mysql服务。
④设置拒绝本地登录。在本地安全策略里面的用户权限分配里面设置的。
这样之后降权呢,下面我在说一些基本的mysql安全配置
①为root@localhost 账户设置一个“强健”的口令。这样做的原因很明显:在MySQL 中并不存在多次输错口令后将用户锁住的机制,因此,对于MySQL 用户名和口令的brute-force 攻击是很有效的,而设置一个“强健”的口令能够预防攻击者的猜测口令行为。
②删除所有非root 的MySQL 用户。在初始安装阶段,了解哪些用户能够访问数据库是非常重要的,尽量将这些用户从最核心(root 账户)处剥离,然后建立您所需要的用户。
③将MySQL 的root 用户重命名为较复杂的名字。root 账户在MySQL 中是一个非常著名的用户名,很多公开可用的工具、脚本、开发都是基于拥有root 账户这个事实的。MySQL 使用root 这样的名字并无特别含义,所以不妨将MySQL 的root 用户重命名为一些复杂的名字:
update MySQL.user set user='MySQL_ admin' where user='root';
④如果启用了远程连接,那么在建立用户时要指定GRANT 语句中的REQUIRE SSL。这是一个较复杂的配置过程,会为特殊用户在连接时执行SSL 加密。
这样做有以下好处:首先保证用户所写的开发脚本不会起作用;第二,保证了口令盘问/ 回答的顺序。根据具体情况,可以通过使用客户机证书施加限制,来进行SSL验证。这是高度安全的,因为关于口令的简单知识是完全不够的,必须有特定的证书才行。
⑤为每个Web 应用创建一个MySQL 用户, 如果可能的话,为Web 应用中的每个角色创建一个用户。例如,可以有一个MySQL 用户用来更新表格,另一个低特权的用户用来从表格中进行“选择”。
根据具体应用将各种角色分解为各用户账户,这个过程可能比较乏味,但它具有很好的安全意义。它意味着如果攻击者能够攻击某个应用程序,那么将会调整组件的特权以使攻击者受到限制。例如,攻击者也许能读某些数据,但无法进行更新。
⑥确保MySQL 用户都能受IP 地址限制,也能受口令限制。一旦嵌入MySQL 配置,那么考虑一下限制用户的IP 地址,使用户无法自行验证。
这是MySQL 一个非常有用的特点,其他数据库则没有。这样,攻击者在试图攻击MySQL 服务器时,您就在他们面前设置了又一个障碍,使他们无法直接攻击服务器,只能去攻击其他一些特定的主机,以便连接到您的数据库服务器。
⑦如果账户不一定需要,不要随便给予账户特权,特别是File priv、Grant priv 和Super priv。如果必须与MySQL 下的文件系统相互作用,那么考虑创建一个单独的MySQL 账户,这样就可以进行应用了。记住,这个账户可以阅读MySQL 的所有数据,包括口令散列。对于攻击者来说,如果他知道口令散列值的话,那么以root 的身份登录将会非常简单。
⑧不要让任何人进入MySQL.user 表格(除了root和用来调用root 的账户)。
做到这些基本mysql的安全也差不多。




相关文章

温馨提示:

技术咨询及售后问题请登陆后提交工单

全国24小时服务热线
0755-23770982
全国服务热线:0755-23770982