50.8. pg_authid

目录pg_authid包含关于数据库授权标识符(角色)的信息。角色把"用户""组"的概念包含在内。一个用户实际上就是一个rolcanlogin标志被设置的角色。任何角色(不管rolcanlogin设置与否)都能够把其他角色作为成员,参见pg_auth_members

由于这个目录包含口令,它不能是公共可读的。pg_roles是在pg_authid上的一个公共可读视图,它隐去了口令域。

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

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

表 50-8. pg_authid的列

名字类型描述
oidoid行标识符(隐藏属性,必须被显式选择才会显示)
rolnamename角色名
rolsuperbool角色是否拥有超级用户权限
rolinheritbool如果本角色是另一个角色的成员,本角色是否自动另一个角色的权限
rolcreaterolebool角色是否能创建更多角色
rolcreatedbbool角色是否能创建数据库
rolcanloginbool 角色是否能登录。即该角色是否能够作为初始会话授权标识符
rolreplicationbool 角色是否为一个复制角色。即角色能否开启流复制(参见第 26.2.5 节)并使用pg_start_backuppg_stop_backup设定和复原系统备份模式
rolbypassrlsbool 角色是否可以绕过所有的行级安全性策略,详见 第 5.7 节
rolconnlimitint4 对于可以登录的角色,本列设置该角色可以同时发起最大连接数。-1表示无限制。
rolpasswordtext 口令(可能被加密),如果没有则为空。如果口令被加密,本列将以字符串md5开始,后接一个32字符的16进制MD5哈希值。这个MD5哈希值将是用户口令与用户名的串接。例如,如果用户joe的口令是xyzzyPostgreSQL将存储xyzzyjoe的MD5哈希值。不遵循这一格式的口令将被假定为未加密。
rolvaliduntiltimestamptz口令过期时间(只用于口令鉴定),如果永不过期则为空