51.8. pg_authid

目錄 pg_authid 包含有關資料庫認證識別(角色)的資訊。角色包含「使用者」和「群組」的概念。使用者基本上只是設置了 rolcanlogin 識別的角色。任何角色(無論有或沒有 rolcanlogin)都可以擁有其他角色作為成員;詳見 pg_auth_members

由於此目錄包含密碼,因此不得公開讀取。 pg_roles 是 pg_authid 上的一個公開可讀的檢視表,它隱藏了密碼字串。

第 21 章包含有關使用者和權限管理的詳細訊息。

由於使用者身份是叢集範圍的,因此 pg_authid 在叢集的所有資料庫之間共享:每個叢集只有一個 pg_authid 副本,而不是每個資料庫一個副本。

Table 51.8. pg_authid Columns

Name

Type

Description

oid

oid

資料列指標(隱藏屬性;必須明確選擇)

rolname

name

角色名稱

rolsuper

bool

角色具有超級使用者權限

rolinherit

bool

角色自動繼承其所屬角色的權限

rolcreaterole

bool

角色可以創造更多角色

rolcreatedb

bool

角色可以建立資料庫

rolcanlogin

bool

角色可以登入。也就是說,此角色可以作為初始連線認證識別

rolreplication

bool

角色是複寫角色。複寫角色可以啟動複寫連線並建立和移除複寫槽。

rolbypassrls

bool

角色繞過每個資料列級別的安全原則,有關詳細訊息,請參閱第 5.7 節

rolconnlimit

int4

對於可以登入的角色,這將設定此角色可以進行的最大同時連線數。-1 表示沒有限制。

rolpassword

text

密碼(可能是加密的); 如果沒有則為 null。格式取決於使用的加密形式。

rolvaliduntil

timestamptz

密碼到期時間(僅用於密碼驗證);如果沒有過期,則回傳 null

對於 MD5 加密密碼,rolpassword 欄位將以字串 md5 開頭,之後跟 32 個字元的十六進位 MD5 hash。MD5 hash 將是使用者的密碼連接到他們的使用者名稱。例如,如果使用者 joe 的密碼為 xyzzy,則 PostgreSQL 將儲存 xyzzyjoe 的 md5 hash 值。

如果使用 SCRAM-SHA-256 加密密碼,則其格式為:

SCRAM-SHA-256$<iteration count>:<salt>$<StoredKey>:<ServerKey>

其中 salt,StoredKey 和 ServerKey 採用 Base64 編碼格式。此格式與 RFC 5803 指定的格式相同。

未遵循這些格式之一的密碼就會被認為是未加密的。