Android shell apache 开源 mysql Ubuntu linux linux命令 Python HTML5 微软 google php java wordpress Firefox centos Windows 程序员 nginx

MySQL 5.6 如何更安全的处理密码

mysql 5.6 中关于密码方面有很多更改的地方,包括: 

  • 全新的密码哈希算法 (SHA-256)
  • .mylogin 文件对密码进行混淆
  • 可选择在数据库表中存储 Slave 节点密码
  • 可在 START SLAVE 中指定密码

但是没有一篇文章来介绍这些内容。

本文将介绍 MySQL 5.6 如何自动的在你的日志文件中隐藏密码。

MySQL 5.6 将会自动的在日志中隐藏密码信息。这不只是混淆,然后将单向哈希值存放在日志文件中。通过设定 log-raw=OFF 你可以禁用日志文件的密码隐藏功能。log-raw 设置只影响一般的日志,而慢查询日志和二进制日志中依然会对密码进行隐藏。 

在 MySQL 5.5 中这个需要在首次将哈希存储在变量时手工处理。但多数场景下这已经没什么用处了。 

但还不止这些,根据 mysql 命令的手册,mysql 命令将不会记录匹配到 "*IDENTIFIED*:*PASSWORD*" 的语句。  尽管如此,还是别忘记给 MySQL 服务器和客户端日志文件予以核实的权限保护,包括其他的一些如 master.info 的文件。此外,如果你在数据库中存储从节点的凭证时需要使用 MySQL 的特权系统进行保护,如果 master.info 使得某人具有太多的数据库权限,并可使用 LOAD DATA INFILE 加载内容时也应该这么做。 

当然,这依然有改进的地方: 

如果我们可以轻松的启用安全连接,这将更好。MySQL 和很多其他应用使用 TLS,但有一些性能的问题,而且设置起来不容易。此外 MySQL 默认是不安全的,只为简单。

因此 MySQL 5.6 在无需任何配置下还是对安全进行了提升。

延伸阅读

评论