选择 打开 改范围 完整检索页
受支持版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发版本: 19 / devel
不受支持的版本: 13 / 12 / 11 / 10
当前 PostgreSQL 版本不在支持生命周期内。
您可以参阅当前版本的对应页面,或其他在上面列出的活跃大版本。

52.8. pg_authid #

目录pg_authid包含关于数据库授权标识符(角色)的信息。角色涵盖了用户这两个概念。用户本质上只是设置了rolcanlogin标志的角色。任何角色(无论是否设置了rolcanlogin)都可以拥有其他角色作为成员;参见pg_auth_members

由于这个目录包含密码,它不应公开可读。pg_roles是建立在pg_authid之上的公开可读视图,它会隐藏密码字段。

Chapter 21包含关于用户和权限管理的详细信息。

由于用户标识符是集簇范围的,pg_authid在一个集簇的所有数据库之间共享:在一个集簇中只有一份pg_authid拷贝,而不是每个数据库一份。

Table 52.8. pg_authid

Name 类型 描述
oid oid 行标识符(隐藏属性,必须显式选择)
rolname name 角色名
rolsuper bool 角色有超级用户权限
rolinherit bool 该角色是否会自动继承其所属其他角色的权限
rolcreaterole bool 角色能创建更多角色
rolcreatedb bool 角色能创建数据库
rolcanlogin bool 角色是否能登录。即该角色是否能够作为初始会话授权标识符
rolreplication bool 角色是一个复制角色。复制角色可以启动复制连接并且创建和删除复制槽。
rolbypassrls bool 角色是否可以绕过所有的行级安全性策略,详见Section 5.7
rolconnlimit int4 对于可以登录的角色,本列设置该角色可以同时发起最大连接数。-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 指定的格式相同。

不符合上述任一种格式的密码将被视为未加密密码。