受支持版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发版本: devel

51.8. pg_authid #

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

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

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

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

Table 51.8. pg_authid

列类型

描述

oid oid

行标识符

rolname name

角色名

rolsuper bool

角色有超级用户权限

rolinherit bool

该角色是否会自动继承其所属其他角色的权限

rolcreaterole bool

角色能创建更多角色

rolcreatedb bool

角色能创建数据库

rolcanlogin bool

角色是否能登录。即该角色是否能够作为初始会话授权标识符

rolreplication bool

角色是一个复制角色。复制角色可以启动复制连接并且创建和删除复制槽。

rolbypassrls bool

角色是否可以绕过所有的行级安全性策略,详见Section 5.9

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中指定的格式相同。

提交更正

如果您发现文档中有不正确的内容、与您使用特定功能的经验不符或需要进一步说明,请使用此表单来报告文档问题。