10.7 预览功能:密码重用检查插件
默认情况下,MariaDB 不检查用户是否重用密码。一些安全策略要求用户每次都选择新密码,而密码重用检查插件(在 MariaDB 10.7.0 预览版中可用)可以实现此功能。
旧密码存储在 mysql.password_reuse_check_history 表中,其保留期限由 password-reuse-check-interval 系统变量决定,该变量指定天数。默认情况下,此值为零,表示无限期保留。
此插件可以与其他密码验证插件结合使用,例如 Simple Password Check plugin 或 CrackLib Password Check plugin。
请注意,如果关闭全局 strict_password_validation 变量(通过将密码指定为哈希值),密码验证很容易被规避。默认情况下,此变量已设置。
安装插件
尽管插件的共享库默认与 MariaDB 一起分发,但插件本身默认并未由 MariaDB 安装。
您可以通过执行 INSTALL SONAME 或 INSTALL PLUGIN 动态安装插件,无需重新启动服务器。例如:
INSTALL SONAME 'password_reuse_check';
第二种方法可用于告知服务器在启动时加载插件。可以通过提供 –plugin-load 或 –plugin-load-add 选项来以这种方式安装插件。这可以作为 mysqld 的命令行参数指定,也可以在选项文件中相关服务器选项组中指定。例如:
[mariadb]
...
plugin_load_add = password_reuse_check
示例
INSTALL SONAME 'password_reuse_check';
GRANT SELECT ON *.* TO user1@localhost identified by 'pwd1';
Query OK, 0 rows affected (0.038 sec)
GRANT SELECT ON *.* TO user1@localhost identified by 'pwd1';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
当然,不可能简单地使用一个中间密码,然后再尝试恢复旧密码。
SET PASSWORD FOR user1@localhost = PASSWORD("pwd1");
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
有两种方法可以尝试此功能。
Tarball
下载并安装 tarball。
容器
您可以运行名为 quay.io/mariadb-foundation/mariadb-dev:10.7-mdev-9245-password-reuse 的容器,其接口与 Docker Library mariadb 镜像相同。
Binder 在线 MariaDB Jupyter Notebook
使用 Binder,您的网页浏览器中提供了完整的运行实例。请耐心等待链接加载,这需要一点时间。
欢迎提供反馈
如果您在此功能预览中遇到任何问题、设计方面的疑问或不按预期工作的边缘情况,请在 MDEV 项目上通过 JIRA 提交 bug/功能请求告知我们。欢迎在 Zulip 上讨论。
另请参阅
知识库中的 密码重用检查插件。