Postgre 的可信任語言擴充功能的掛接參考 SQL - Amazon Aurora

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Postgre 的可信任語言擴充功能的掛接參考 SQL

Postgre 的受信任語言擴充功能SQL支援 Postgre 掛SQL接。子是開發人員可用於擴展 Postgre 核心功能SQL的內部回調機制。通過使用鉤子,開發人員可以實現自己的功能或過程,以便在各種數據庫操作中使用,從而以某種方式修改 Postgre SQL 的行為。例如,您可以使用passcheck掛接來自訂 Postgre 在為使用者 (角色) 建立或變更密碼時如何SQL處理所提供的密碼。

請檢視下列文件,以瞭解可用於您的TLE擴充功能的密碼檢查勾點。

密碼檢查掛鉤 (passcheck)

passcheck鉤子用於在以下SQL命令和元數據和密碼檢查過程中自定義 Postgre SQL 行為。psql

  • CREATE ROLE username ...PASSWORD— 如需詳細資訊,請參閱 Postgre SQL 文件CREATEROLE中的。

  • ALTER ROLE username...PASSWORD— 如需詳細資訊,請參閱 Postgre SQL 文件ALTERROLE中的。

  • \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 Postgre 資料庫叢集之寫入器執行個體的自訂SQL資料庫參數群組。

用於 Linux, macOS,或 Unix:

aws rds modify-db-parameter-group \ --region aws-region \ --db-parameter-group-name your-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-name your-custom-parameter-group ^ --parameters "ParameterName=pgtle.enable_password_check,ParameterValue=on,ApplyMethod=immediate"