Skip to main content

Postgresql设置密码复杂度策略

安装和配置 passwordcheck 扩展

以下是如何使用 passwordcheck 扩展来设置 PostgreSQL 用户密码复杂度策略的步骤:

1. 安装 passwordcheck 扩展

首先,确保已安装 PostgreSQL 和 contrib 模块:

sudo yum install postgresql13-server postgresql13-contrib

根据你的 PostgreSQL 版本,可能需要调整 postgresql13 为你所使用的版本。

2. 启用 passwordcheck 扩展

passwordcheck 扩展添加到 PostgreSQL 配置文件 postgresql.conf 中:

sudo vi /var/lib/pgsql/13/data/postgresql.conf

添加以下行:

shared_preload_libraries = 'passwordcheck'

3. 配置密码复杂度策略

postgresql.conf 文件中添加具体的密码复杂度策略配置:

passwordcheck.min_length = 8
passwordcheck.max_length = 20
passwordcheck.min_lowercase = 1
passwordcheck.min_uppercase = 1
passwordcheck.min_digits = 1
passwordcheck.min_special = 1

保存并关闭文件。

4. 重启 PostgreSQL 服务

重启 PostgreSQL 以使配置生效:

sudo systemctl restart postgresql-13

5. 验证配置

尝试更改 PostgreSQL 用户密码,确保密码复杂度策略生效:

ALTER USER your_username WITH PASSWORD 'SimplePass'; -- 应该会失败
ALTER USER your_username WITH PASSWORD 'ComplexPass1!'; -- 应该会成功

注意事项

  • 密码策略配置项passwordcheck 扩展中的配置项可能不如一些外部插件详细和可定制,但是它可以覆盖基本的密码复杂度要求。
  • 数据库用户:以上配置适用于 PostgreSQL 自身的数据库用户,而不是应用系统中的用户。