查看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 |
+-------------------------+-----------------------------------+
答案 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服务器上进行上述选择,在这种情况下,您最终会遇到同样的问题。 : - )