暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

【ACDU 翻译】MySQL 6.1.2.3 密码和日志

原创 由迪 2021-08-06
644

密码可以在 SQL 语句中以纯文本形式编写,例如 CREATE USERGRANTSET PASSWORD。如果 MySQL 服务器按照写入的方式记录此类语句,则任何有权访问日志的人都可以看到其中的密码。

语句日志记录避免将密码写为以下语句的明文:

CREATE USER ... IDENTIFIED BY ... ALTER USER ... IDENTIFIED BY ... SET PASSWORD ... START SLAVE ... PASSWORD = ... START REPLICA ... PASSWORD = ... CREATE SERVER ... OPTIONS(... PASSWORD ...) ALTER SERVER ... OPTIONS(... PASSWORD ...)

这些语句中的密码被重写为不会出现在写入通用查询日志、慢查询日志和二进制日志的语句文本中。重写不适用于其他语句。具体而言, INSERTUPDATE对语句 mysql.user引用文字密码系统表中记录为是,那么你应该避免这样的语句。(无论如何,不鼓励直接修改授权表。)

对于一般查询日志,可以通过使用该--log-raw选项启动服务器来抑制密码重写 。出于安全原因,不建议将此选项用于生产用途。出于诊断目的,查看服务器接收到的语句的确切文本可能很有用。

默认情况下,审计日志插件生成的审计日志文件的内容未加密,可能包含敏感信息,例如 SQL 语句的文本。出于安全原因,审计日志文件应该写入一个只有 MySQL 服务器和有正当理由查看日志的用户才能访问的目录。请参阅 第 6.4.5.3 节,“MySQL 企业审计安全注意事项”

如果安装了查询重写插件,服务器收到的语句可能会被重写(请参阅 查询重写插件)。在这种情况下,该 --log-raw选项会影响语句日志记录,如下所示:

  • 如果没有--log-raw,服务器会记录查询重写插件返回的语句。这可能与收到的声明不同。
  • 使用--log-raw,服务器记录收到的原始语句。

密码重写的一个含义是无法解析的语句(例如,由于语法错误)不会写入一般查询日志,因为无法知道它们是无密码的。需要记录所有语句(包括有错误的语句)的用例应该使用该 --log-raw选项,记住这也绕过密码重写。

密码重写仅在需要纯文本密码时发生。对于具有期望密码哈希值的语法的语句,不会发生重写。如果为此类语法错误地提供了纯文本密码,则密码将按给定方式记录,而不会重写。

为了防止日志文件被无端暴露,请将它们放置在限制访问服务器和数据库管理员的目录中。如果服务器登录到 mysql数据库中的表,则仅向数据库管理员授予对这些表的访问权限。

副本将复制源服务器的密码存储在其连接元数据存储库中,默认情况下它是mysql数据库中名为 slave_master_info. 现在不推荐使用连接元数据存储库的数据目录中的文件,但仍然可以使用(请参阅 第 17.2.4 节,“中继日志和复制元数据存储库”)。确保连接元数据存储库只能由数据库管理员访问。将密码存储在连接元数据存储库中的替代方法是使用 START REPLICA | SLAVEorSTART GROUP_REPLICATION语句指定用于连接到源的凭据。

使用受限访问模式来保护包含日志表或包含密码的日志文件的数据库备份。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论