• 注册
  • BBS 运维 关注:10 内容:10

    MySQL数据库安全配置

  • 查看作者
  • 打赏作者
  • 拉黑名单
  • 当前位置: 字节脉搏 > 运维网工 > 运维 > 正文
    脚本小子
    VIP
    夜行字节(字节脉搏实验室)

    1.MySQL权限介绍:

    MySQL中存在4个控制权限的表,分别为user表,db表,tables_priv表,columns_priv表。先从user表中的Host,User,Password这三个字段中判断连接的IP、用户名、密码是否存在,存在则通过验证。通过验证之后,则会进行权限分配,按照user,db,tables_priv,columns_priv的顺序进行验证。即先检查权限表user,如果user中对应的权限为Y,则此用户对所有数据库的权限都为Y,将不再检查db,tables_priv,columns_priv;如果为N,则到db表中检查此用户对应的具体数据库,并得到db中为Y的权限;如果db中为N,则检查tables_priv中此数据库对应的具体表,取得表中的权限Y。网站使用时是否建议给予权限如下:

    MySQL数据库安全配置

    2.MySQL安全配置方案:

    1)限制访问MySQL端口的IP:Windows可以通过Windows防火墙和Ipsec来限制,Linux下可以通过Iptables来限制。
    2)修改MySQL的端口:Windows下可以修改配置文件my.ini来实现,Linux可以修改配置文件my.cnf来实现。
    3)对所有用户设置强密码并严格指定对应账号的访问IP。(Tip:MySQL中user表可指定用户可访问的IP)
    4)root特权账号的处理:root账号最好设置强密码并且设置只允许本地登录。
    5)日志的处理:查询日志会记录登录和查询语句。
    6)MySQL进程运行账号:最好禁止使用local system去运行MySQL账户,建议使用network service或者新建一个账户,只要给予MySQL程序所在目录的读取权限和data目录的读写权限即可;Linux系统中,新建一个MySQL账号,并在安装时指定以MySQL账户来运行,并给予程序所在目录的读取权限,data目录读写权限。

    MySQL数据库安全配置

    7)MySQL运行账号的磁盘权限:

    a、MySQL运行账号需要给予程序所在目录的读取权限,以及data目录的读取和写入权限。

    b、不容许给予其他目录的写入和执行权限,特别是有网站的。

    c、取消MySQL运行账户对于cmd,sh等一些程序的执行权限。

    8)网站使用MySQL账户的处理:

    新建一个账户,给予账户所使用数据库的所有权限即可,这样能保证账户不会因为权限过高而影响安全。给予单个数据库所有权限的账户不会拥有super,process,file等管理权限。

    9)删除没使用的数据库:比如test数据库,该数据库对新建的账户默认有权限。

    3.MySQL安全配置常用命令:

    1.MySQL的root用户是空密码,为了安全起见必须修改为强密码,命令:
    MySQL数据库安全配置
    2.刷新内存授权表,否则还是使用缓存中的口令,即还可以使用空口令进行登录,命令:
    MySQL数据库安全配置
    3.系统管理员用户名为root,为了安全起见建议修改,命令:
    MySQL数据库安全配置
    4.给予相应的数据库权限:
    MySQL数据库安全配置
    5.刷新权限:
    MySQL数据库安全配置
    6.显示权限,可以看到刚才添加的权限语句:
    MySQL数据库安全配置
    7.移除权限:
    MySQL数据库安全配置
    可以看到之前添加的权限已经取消:
    MySQL数据库安全配置
    8.添加用户:
    MySQL数据库安全配置
    MySQL数据库安全配置
    9.删除用户:
    MySQL数据库安全配置
    10.用户改名:
    MySQL数据库安全配置

    请登录之后再进行评论

    登录
  • 做任务
  • 帖子间隔 侧栏位置: