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

[译文] 使用 MySQL 8 双密码

原创 Brian Sumpter 2021-08-13
1739

MySQL 8 带来了许多备受期待的特性,支持用户角色、新的 shell、更强大的数据字典和更好的 SQL 支持,仅举几例。然而,有一些鲜为人知的新功能旨在减少 DBA 的整体工作量和简化管理流程——其中之一是支持双密码,首先在 MySQL 8.0.14 中实现。现在允许用户帐户具有双密码,指定主要和次要密码。这使得即使在使用大量服务器或多个应用程序连接到不同 MySQL 服务器的情况下也可以无缝地执行用户凭据更改。

从历史上看,必须对 MySQL 凭据更改进行计时,以便在更改密码并在整个数据库节点中传播时,必须同时更新使用该帐户进行连接的所有应用程序。这有很多问题,但由于数据库和应用程序服务器的数量与今天一样高,在现代企业规模上变得尤其繁重。

概述

使用双密码,可以轻松更改凭据,无需任何协调或停机。该过程将像这样工作:

  • 对于每个要更新的帐户,在服务器上建立一个新的主密码,同时保留当前密码作为辅助密码。
    此时,服务器将识别两个密码(主密码和辅助密码),所有应用程序都可以像以前一样使用旧密码继续连接。
  • 在数据库端完成密码更改后,可以更新应用程序以使用新的主密码进行连接。
    请注意,这可以在一段时间内完成,如有必要,可以利用现有的停机维护窗口。
  • 将所有应用程序迁移到新的主密码后,数据库端不再需要副密码,可以丢弃。
    丢弃后,只能使用新的主密码,凭证更改现已完成。

用法和示例

为了实现这种双重密码功能,以下新语法将保存和丢弃二级密码:

  • 分配新的主密码时,ALTER USER和SET PASSWORD语句的RETAIN CURRENT PASSWORD子句将当前密码保存为辅助密码。
  • ALTER USER 的DISCARD OLD PASSWORD子句将丢弃辅助密码,只保留主密码。

例如,让我们使用双密码功能来更新理论用户 (‘appuser’@‘percona.com’) 的密码。对于此示例,假设应用程序将使用此用户连接到数据库,并且我们将密码从“oldpass”更改为“newpass”。

  1. 在每台服务器(不是副本)上,我们首先将“newpass”设置为“appuser”@“percona.com”的新主密码,同时保留当前密码作为辅助密码:
mysql> ALTER USER ‘appuser’@’percona.com’ IDENTIFIED BY ‘newpass’ RETAIN CURRENT PASSWORD;
  1. 一旦密码更改通过所有副本节点传播,我们现在可以开始更改使用“appuser”@“percona.com”帐户的应用程序,以开始使用新密码(newpass)而不是原始密码进行连接密码(旧密码)。这可以在一段时间内完成,如有必要,可在现有停机维护窗口期间完成,以尽量减少影响。请记住,此时两个密码都有效。
  2. 随着应用程序的更改,不再需要辅助(旧)密码。在每台服务器(不是副本)上,丢弃辅助密码:
mysql> ALTER USER ‘appuser’@’percona.com’ DISCARD OLD PASSWORD;
  1. 一旦这在所有副本中传播,凭证更改现在就完成了。

在使用双密码功能时,您可能需要注意一些注意事项:

  • 如果您对主密码为空的帐户使用RETAIN CURRENT PASSWORD,则该语句将失败。
  • 如果帐户有二级密码,并且您在未指定RETAIN CURRENT PASSWORD 的情况下更改主密码,则二级密码保持不变。
  • 如果您使用ALTER USER并更改分配给该帐户的身份验证插件,则会丢弃辅助密码。
  • 如果您更改身份验证插件并指定RETAIN CURRENT PASSWORD,则该语句将失败。

所需权限

要修改您自己的用户帐户,需要APPLICATION PASSWORD ADMIN权限才能对ALTER USER和SET PASSWORD语句使用RETAIN CURRENT PASSWORD 或DISCARD OLD PASSWORD 子句。

要在管理级别修改任何(或所有)帐户的二级密码,需要CREATE USER权限而不是上面的APPLICATION PASSWORD ADMIN权限。

最后

虽然这是一个非常简单的新功能,但它可以对贵公司如何管理频繁更改密码的安全方面产生相当大的影响,最大限度地减少或可能完全消除密码更新造成的停机时间。

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

评论