适用于 PostgreSQL 的可信语言扩展的挂钩参考
适用于 PostgreSQL 的可信语言扩展支持 PostgreSQL 挂钩。挂钩是一种内部回调机制,可供开发人员扩展 PostgreSQL 的核心功能。通过使用挂钩,开发人员可以实现自己的函数或过程以在各种数据库操作中使用,从而以某种方式修改 PostgreSQL 的行为。例如,您可以使用 passcheck
挂钩自定义 PostgreSQL 如何处理在为用户(角色)创建或更改密码时提供的密码。
查看以下文档,了解可用于 TLE 扩展的 passcheck 钩子。
密码检查挂钩(passcheck)
passcheck
挂钩用于在以下 SQL 命令和 psql
元命令的密码检查过程中自定义 PostgreSQL 行为。
CREATE ROLE
– 有关更多信息,请参阅 PostgreSQL 文档中的 CREATE ROLEusername
...PASSWORD。 ALTER ROLE
– 有关更多信息,请参阅 PostgreSQL 文档中的 ALTER ROLEusername
...PASSWORD。 \password
– 此交互式username
psql
元命令在透明地使用ALTER ROLE ... PASSWORD
语法之前,通过对密码进行哈希处理来安全地更改指定用户的密码。元命令是ALTER ROLE ... PASSWORD
命令的安全包装器,因此挂钩适用于psql
元命令的行为。
有关示例,请参阅密码检查挂钩代码列表。
函数原型
passcheck_hook(username text, password text, password_type pgtle.password_types, valid_until timestamptz, valid_null boolean)
参数
passcheck
挂钩函数采用以下参数。
username
– 设置密码的角色(用户名)的名称(文本)。password
– 纯文本或哈希处理的密码。输入的密码应与在password_type
中指定的类型相匹配。password_type
– 指定密码的pgtle.password_type
格式。此格式可能是以下选项之一。PASSWORD_TYPE_PLAINTEXT
– 纯文本密码。PASSWORD_TYPE_MD5
– 已使用 MD5(消息摘要 5)算法进行哈希处理的密码。PASSWORD_TYPE_SCRAM_SHA_256
– 已使用 SCRAM-SHA-256 算法进行哈希处理的密码。
valid_until
– 指定密码变为失效的时间。此参数是可选的。如果使用此参数,请将时间指定为timestamptz
值。valid_null
– 如果此布尔值设置为true
,则valid_until
选项设置为NULL
。
配置
函数 pgtle.enable_password_check
控制 passcheck 挂钩是否处于活动状态。passcheck 挂钩有三种可能的设置。
off
– 关闭passcheck
密码检查挂钩。这是默认值。on
– 打开passcode
密码检查挂钩,以便对照表检查密码。require
– 需要定义密码检查挂钩。
使用说明
要打开或关闭 passcheck
挂钩,您需要修改 Aurora PostgreSQL 数据库集群的写入器实例的自定义数据库参数组。
对于 Linux、macOS 或 Unix:
aws rds modify-db-parameter-group \ --region
aws-region
\ --db-parameter-group-nameyour-custom-parameter-group
\ --parameters "ParameterName=pgtle.enable_password_check,ParameterValue=on,ApplyMethod=immediate"
对于 Windows:
aws rds modify-db-parameter-group ^ --region
aws-region
^ --db-parameter-group-nameyour-custom-parameter-group
^ --parameters "ParameterName=pgtle.enable_password_check,ParameterValue=on,ApplyMethod=immediate"