PostgreSQL pg_authid

2021-09-14 10:28 更新

目錄pg_authid包含關于數(shù)據(jù)庫授權標識符(角色)的信息。角色把用戶的概念包含在內(nèi)。一個用戶實際上就是一個rolcanlogin標志被設置的角色。任何角色(不管 rolcanlogin設置與否)都能夠把其他角色作為成員,參見pg_auth_members。

由于這個目錄包含口令,它不能是公共可讀的。pg_roles是在pg_authid上的一個公共可讀視圖,它隱去了口令域。

第 21 章包含關于用戶和權限管理的詳細信息。

由于用戶標識符是集簇范圍的,pg_authid在一個集簇的所有數(shù)據(jù)庫之間共享:在一個集簇中只有一份pg_authid拷貝,而不是每個數(shù)據(jù)庫一份。

表 51.8. pg_authid Columns

列類型

描述

oid oid

行標識符

rolname name

角色名

rolsuper bool

角色有超級用戶權限

rolinherit bool

如果本角色是另一個角色的成員,本角色是否自動另一個角色的權限

rolcreaterole bool

角色能創(chuàng)建更多角色

rolcreatedb bool

角色能創(chuàng)建數(shù)據(jù)庫

rolcanlogin bool

角色是否能登錄。即該角色是否能夠作為初始會話授權標識符

rolreplication bool

角色是一個復制角色。復制角色可以啟動復制連接并且創(chuàng)建和刪除復制槽。

rolbypassrls bool

角色是否可以繞過所有的行級安全性策略,詳見第 5.8 節(jié)。

rolconnlimit int4

對于可以登錄的角色,本列設置該角色可以同時發(fā)起最大連接數(shù)。-1表示無限制。

rolpassword text

密碼(可能被加密過),如果沒有口令則為空。格式取決于使用的加密方法的形式。

rolvaliduntil timestamptz

口令過期時間(只用于口令鑒定),如果永不過期則為空


對于一個MD5加密的口令,rolpassword列將由字符串md5后面跟上一個32字符的十六進制MD5哈希值構成。MD5哈希值將是該用戶的口令串接上它們的用戶名。例如,如果用戶joe的口令是xyzzy,則PostgreSQL將存儲 xyzzyjoe的md5哈希。

如果口令采用SCRAM-SHA-256加密,它的格式是:

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

其中saltStoredKeyServerKey是Base64編碼格式。這種格式與RFC 5803說明的格式相同。

不遵守上述格式的口令被假定為未加密。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號