Postgresql 中文操作指南
53.8. pg_authid #
目录 pg_authid 包含有关数据库授权标识符(角色)的信息。角色包含了“用户”和“组”的概念。用户本质上只是一组 rolcanlogin 标志已设置的角色。任何角色(无论是否有 rolcanlogin )都可以有其他角色作为成员;请参见 pg_auth_members 。
由于此目录包含密码,因此它不能公开读取。 pg_roles 是 pg_authid 中一个可公开读取的视图,其中将密码字段留空。
Chapter 22提供了有关用户和权限管理的详细信息。
由于用户标识在整个集群,pg_authid 在集群的所有数据库中共享:每个集群只有一份 pg_authid,而不是每个数据库一份。
Table 53.8. pg_authid Columns
Column Type Description |
oid oid Row identifier |
rolname name Role name |
rolsuper bool 角色具有超级用户权限 |
rolinherit bool 角色自动继承其作为成员的角色的权限 |
rolcreaterole bool 角色可以创建更多角色 |
rolcreatedb bool 角色可以创建数据库 |
rolcanlogin bool 角色可以登录。也就是说,可以将此角色作为初始会话授权标识符给出。 |
rolreplication bool 角色是复制角色。复制角色可以启动复制连接,以及创建和删除复制槽。 |
rolbypassrls bool 角色绕过每一行级安全策略,有关详细信息,请参见 Section 5.8 。 |
rolconnlimit int4 对于可以登录的角色,此项设置此角色可以进行的最大并发连接数。-1 表示无限制。 |
rolpassword text 密码(可能是加密的);如果没有,则为 null。格式取决于使用的加密形式。 |
rolvaliduntil timestamptz 密码过期时间(仅用于密码身份验证);如果没有过期时间,则为 null |
对于一个 MD5 加密密码,rolpassword 列将用字符串 md5 开头,后跟一个 32 位十六进制 MD5 哈希。MD5 哈希将是用户的合并后密码与其用户名。例如,如果用户 joe 有密码 xyzzy,PostgreSQL 将存储 xyzzyjoe 的 MD5 哈希。
如果使用 SCRAM-SHA-256 加密密码,则其格式为:
SCRAM-SHA-256$<iteration count>:<salt>$<StoredKey>:<ServerKey>
其中 salt、_StoredKey_和 _ServerKey_都采用 Base64 编码格式。此格式与 RFC 5803指定的格式相同。
假设不符合这两种格式的密码是未加密的密码。