Maraidb在日志文件中显示密码

时间:2015-11-13 12:40:15

标签: mysql mariadb

查看mariadb日志,我看到所有密码都以IDENTIFIED BY等明文形式登录。是否有任何选择或方式来抑制这一点。这是一个巨大的安全风险。

感谢任何帮助。

MariaDB [(none)]> SHOW VARIABLES LIKE "%version%";
+-------------------------+-----------------------------------+
| Variable_name           | Value                             |
+-------------------------+-----------------------------------+
| innodb_version          | 5.5.41-MariaDB-37.0               |
| protocol_version        | 10                                |
| slave_type_conversions  |                                   |
| version                 | 5.5.42-MariaDB-wsrep              |
| version_comment         | MariaDB Server, wsrep_25.11.r4026 |
| version_compile_machine | x86_64                            |
| version_compile_os      | Linux                             |
+-------------------------+-----------------------------------+

2 个答案:

答案 0 :(得分:0)

如果您使用audit plug-in v1.2 or newer,那么mariadb会屏蔽某些查询中的密码。具体做法是:

  

从版本1.2.0开始,某些查询的日志中的密码已被星号替换,包括:

     

GRANT,CREATE USER,CREATE MASTER,CREATE SERVER,ALTER SERVER

     

使用PASSWORD()和OLD_PASSWORD()函数给出的密码   DML语句仍然会以查询中的纯文本形式记录,也可以   用于加密函数的密钥字符串,如ENCODE()和   AES_ENCRYPT()。

此外,您可以通过使用文件系统级加密限制访问权限,通过传统方式保护日志文件。实际上,只有DBA才能访问服务器日志,而且他们几乎可以在db中做任何事情。

答案 1 :(得分:0)

明文密码不仅记录在MariaDB日志中,而且还可能记录在连接到MariaDB的用户的.mysql_history文件中并执行了一些

CREATE/GRANT/etc.. IDENTIFIED BY 'some_cleartext_password'

如果您以root身份连接,则可以在.mysql_history/home/username中找到/root

避免此类事情发生的最佳方法是替换语法

CREATE/GRANT/etc.. IDENTIFIED BY 'some_cleartext_password'

CREATE/GRANT/etc.. IDENTIFIED BY PASSWORD 'hashed_password'

您可以在调用MariaDB的应用程序中或使用MariaDB的PASSWORD()函数计算散列密码。例如:

SELECT PASSWORD('some_cleartext_password')

如果您不想记录上述查询,请在另一台MariaDB / MySQL服务器上进行上述选择,在这种情况下,您最终会遇到同样的问题。 : - )