passwordcheck

一个用于检查用户密码是否满足某些条件的 contrib 模块

passwordcheck 是一个用于检查用户密码是否满足某些条件的contrib 模块

passwordcheckPostgreSQL 9.0 中添加,用于提供使用 钩子 check_password_hook 的代码的示例实现。

用法

passwordcheck 通过包含在 shared_preload_libraries 中激活。

按原样,它执行有限范围的检查。特别是,它只能检查加密密码是否与用户名匹配(任何进一步的检查当然都是不可能的),并且在现实世界的安全环境中实用性有限。鉴于 PostgreSQL 提供了相对有限的管理密码有效性的功能,建议配置外部身份验证机制,例如 GSSAPI、SSPI、LDAP 或 RADIUS。

更改历史记录

passwordcheck 自在 PostgreSQL 9.0 中添加以来,没有进行过重大修改。

示例

passwordcheck 必须通过 shared_preload_libraries 启用

postgres=# SHOW shared_preload_libraries;
 shared_preload_libraries 
--------------------------
 passwordcheck
(1 row)

使用明文密码的示例用法

postgres=# ALTER ROLE foo PASSWORD 'foo';
ERROR:  password is too short

postgres=# ALTER ROLE postgres PASSWORD 'postgres';
ERROR:  password must not contain user name

postgres=# ALTER ROLE foo PASSWORD 'foobar';
ERROR:  password must not contain user name

postgres=# ALTER ROLE foo PASSWORD 'boobarbaz';
ERROR:  password must contain both letters and nonletters

对于以加密格式提供的密码,只能进行简单的检查,即密码是否与用户名匹配

postgres=# ALTER ROLE foo ENCRYPTED PASSWORD 'SCRAM-SHA-256$4096:eUHVJZ5WSsEomBt9BgHJzQ==$x57IR2ZcoKl8tlz5I2w636bquX3JmCYmi4LlDIa5lIY=:viXV52BLraOFRaw1gCp22K9VgLe6Rvi1nvcWNR6PTe4=';
ERROR:  password must not equal user name

其他密码将按原样接受;此处值 foobar(作为明文将被拒绝)作为加密密码传递

postgres=# ALTER ROLE foo ENCRYPTED PASSWORD 'SCRAM-SHA-256$4096:aiSTMi/J+KkJa9WFMgiahg==$f//pUq3yGJ6E8UbCxJWcGvnylc0aNuZR6WuLAcYSzWA=:yzMz+l1TIAYQ28tdQ2YopKwQiIjMwpGAariL2jmeaxU=';
ALTER ROLE

分类

身份验证代码示例Contrib 模块

另请参阅

check_password_hook

反馈

提交关于“passwordcheck”的任何评论、建议或更正 此处