MySQL 密码安全
2015-11-13 15:26
399 查看
当执行的SQL语句中包含密码的时候(例如执行 CREATE USER, GRANT , SET PASSWORD),或者调用PASSWORD() 函数时,这些语句都可能被MYSQL服务器日志所记录,如此一来任何可以访问日志的人都可以看到这些密码,这是非常危险的。
好在在MySQL 5.6.3之后,上述涉及密码的语句日志会被重写处理,将密码部分用...代替。但是不幸的是,INSERT、UPDATE等语句日志并不会被特殊处理,因此如果对mysql.user表进行INSERT/UPDATE等操作日志仍旧会明文记录密码,所以必须避免此类操作。
刚才说了,5.6.3版本以后会对用户密码语句的日志进行重写处理,但是如果在启动MYSQL的时候使用了 --log-raw选项,那么MYSQL就不会进行密码重写了,所以这个选项不要在生产环境使用,仅作为开发调试诊断时使用。
另一方面就是对日志本身的保护,控制日志文件的访问权限,如果日志不是以文件形式,而是存储在mysql库的日志表中,则要控制对此表的访问权限。主从环境下,slave也会存储密码用于同步master数据,也是存储在文件或者表中,需要同样加以保护。
好在在MySQL 5.6.3之后,上述涉及密码的语句日志会被重写处理,将密码部分用...代替。但是不幸的是,INSERT、UPDATE等语句日志并不会被特殊处理,因此如果对mysql.user表进行INSERT/UPDATE等操作日志仍旧会明文记录密码,所以必须避免此类操作。
刚才说了,5.6.3版本以后会对用户密码语句的日志进行重写处理,但是如果在启动MYSQL的时候使用了 --log-raw选项,那么MYSQL就不会进行密码重写了,所以这个选项不要在生产环境使用,仅作为开发调试诊断时使用。
另一方面就是对日志本身的保护,控制日志文件的访问权限,如果日志不是以文件形式,而是存储在mysql库的日志表中,则要控制对此表的访问权限。主从环境下,slave也会存储密码用于同步master数据,也是存储在文件或者表中,需要同样加以保护。
相关文章推荐
- mysql数据库忘记密码时如何修改
- mysql 中某一列字符串中特定字符以后的内容
- Kettle 5.2 缺少MySql驱动
- MySQL在字段中使用select子查询
- mysql 创建存储过程报错
- 说说一条最优的获取MYSQL随机记录的语句
- mysql判断表记录是否存在,不存在则插入新纪录
- Navicat Premium实现mysql数据库备份 还原
- sql server 和 mysql 的分页读取数据方法
- 关于IP在MySQL中的存储
- MySQL备份与恢复整理 较老的教程 参考
- mysql批量更新多条数据的写法
- mysql 5.7 设置root密码方法
- mysql 按指定id排序
- MySQL安装脚本
- mysql ---事务
- mysqld(服务器)命令行选项
- mysql-debug
- 第一章:Mysql负载均衡与主从复制实验
- 辛星浅析mysql中的单词的局部修改