有时我查看我的 MySQL 日志,偶然发现一些AES_ENCRYPT/AES_DECRYPT请求以明文形式显示密码。
如果我在 PHP 中创建日志,我将能够删除它们。
但是MySQL 通用/慢查询日志呢?他们的选项是否可用,或者是否可以设置一个不会保存在日志中的 mySQL 变量?
有时我查看我的 MySQL 日志,偶然发现一些AES_ENCRYPT/AES_DECRYPT请求以明文形式显示密码。
如果我在 PHP 中创建日志,我将能够删除它们。
但是MySQL 通用/慢查询日志呢?他们的选项是否可用,或者是否可以设置一个不会保存在日志中的 mySQL 变量?
不幸的是,我知道没有办法为单个语句禁用 MySQL 日志记录。由于这个原因,MySQL 文档建议保持日志的安全:
从 MySQL 5.6.3 开始,写入通用查询日志的语句中的密码由服务器重写,不会以纯文本形式出现。通过使用 --log-raw 选项启动服务器,可以抑制一般查询日志的密码重写。此选项可能对诊断有用,可用于查看服务器接收到的语句的确切文本,但出于安全原因,不建议将其用于生产用途。
在 MySQL 5.6.3 之前,语句中的密码不会被重写,一般查询日志应该受到保护。请参阅第 6.1.2.2 节,“<a href="http://dev.mysql.com/doc/refman/5.1/en/password-security-admin.html" rel="nofollow">密码安全管理员指南” .
不幸的是,(从 5.6.3 开始)内置的反密码日志记录仅适用于 MySQL PASSWORD() 函数。
对于您的问题,我看到了一些可能的解决方案: