加入收藏 | 设为首页 | 会员中心 | 我要投稿 丽水站长网 (https://www.0578zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MySQL中安全设置的示例剖析

发布时间:2022-01-11 14:03:14 所属栏目:MySql教程 来源:互联网
导读:这篇文章主要为大家展示了MySQL中安全设置的示例分析,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下MySQL中安全设置的示例分析这篇文章吧。 MySQL 安全设置 服务器启动后,可以执行 mysql_secure_installatio
      这篇文章主要为大家展示了“MySQL中安全设置的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“MySQL中安全设置的示例分析”这篇文章吧。
 
     MySQL 安全设置
 
     服务器启动后,可以执行
 
mysql_secure_installation;
 
     此时输入 root 原始密码(初始化安装的话为空),接下来,为了安全,MySQL 会提示你重置 root 密码,移除其他用户账号,禁用 root 远程登录,移除 test 数据库,重新加载 privilege 表格等,你只需输入 y 继续执行即可。
 
运行mysql_secure_installation会执行几个设置:
 
a)为root用户设置密码
 
b)删除匿名账号
 
c)取消root用户远程登录
 
d)删除test库和对test库的访问权限
 
e)刷新授权表使修改生效
 
绑定IP
 
--bind-address=IP
 
1.修改root用户密码
 
   可以通过mysql_secure_installation完成
 
2.正确授权
 
   mysql库中有4张权限表,user、db、tables_priv、columns_priv,分别对应用户密码、用户对数据库的权限、对表的权限、对列的权限。
 
   当一个用户向MySQL发起请求时,首先会从user表中验证host、user、password,然后依次验证db、tables_priv、columns_priv,验证过程中,如果db表中对应的权限为Y,则用户对某个库的权限全为Y,将不再验证tables_priv和columns_priv。
 
    对于MySQL中的账户权限相关的安全配置,总结如下:
 
针对每个网站建立单独的账户
 
为每个网站家里专属数据库
 
按照user->db->tables_priv->columns_pri的顺序进行细粒度的权限控制
 
为每个用户单独配置一个专属数据库,保证当前的用户所有操作只能发生在自己的数据库中,防止SQL注入发生后,黑客通过注入访问到系统表。
 
3.MySQL网络安全配置
 
禁止root用户远程登陆
 
防火墙设置
 
更改默认端口,可以一定程度上防止端口扫描工具扫描
 
限制单个用户的连接数量:
 
  max_user_connections  20
 
4.文件权限及文件安全
 
使用非root用户启动MySQL服务
 
限制启动MySQL的用户的文件权限,同时保证用户对MySQL的数据文件有读写权限
 
可以使用chroot更改根目录,防止非root用户访问到一些敏感文件,比如:/etc/passwd
 
不要给非root用授予process和super权限,mysqladmin processlist 和show processlist命令会查看到任何用户执行的命令,这可能看到其他用户执行的update user set passoword=…;命令,supper权限可以终止会话,更改系统参数等
 
不要对表的使用软连接(--skip-symbolic-links参数用来禁用这一功能),表的软连接接只有MyISAM支持,因为开启表的软连接后(尤其时对于使用系统root用户启动的MySQL服务),MySQL用户就可以使用mysqld来删除、重命名数据文件所在的位置以外的文件了。
 
如果plugin文件夹可以被MySQL Server写,那么用户就可以使用select … into dumpfile 命令把可以执行代码写入到里面,可以通过把plugin_dir参数对应的路径设为只读以及调整--secure-file-priv参数来提高安全性
 
不要给非root用户授予文件的读写权限,防止使用load data local infile 来提取本地文件(比如/etc/passwd里的信息,会对系统安全造成威胁)
 
 [mysqld]
 
 local-infile=0
 
5.如果有必要,可以删除~/.bash_history 文件,防止读取历史命令
 
#rm .bash_history .mysql_history
 
#ln -s /dev/null .bash_history
 
#ln -s /dev/null .mysql_history
 
以上是“MySQL中安全设置的示例分析”这篇文章的所有内容,感谢各位的阅读!

(编辑:丽水站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读