多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# 47.67\. `pg_shadow` `pg_shadow`存在是为了向下兼容:它模拟了一个PostgreSQL 版本 8.1 之前的系统表。它显示了所有在[`pg_authid`](#calibre_link-811) 中标记了`rolcanlogin`的角色的属性。 这个系统表的名字来自于该表不能被公众可读,因为它包含口令。 [`pg_user`](#calibre_link-989)是一个在 `pg_shadow`上公开可读的视图,只是把口令域填成了空白。 **Table 47-68\. `pg_shadow` 字段** | 名字 | 类型 | 引用 | 描述 | | --- | --- | --- | --- | | `usename` | `name` | `pg_authid`.rolname | 用户名 | | `usesysid` | `oid` | `pg_authid`.oid | 用户的 ID | | `usecreatedb` | `bool` | 用户可以创建数据库 | | `usesuper` | `bool` | 用户是超级用户 | | `usecatupd` | `bool` | 用户可以更新系统表。即使超级用户,如果这个字段不是真,也不能更新系统表。 | | `userepl` | `bool` | 用户可以初始化流复制和使系统处于或不处于备份模式。 | | `passwd` | `text` | 口令(可能是加密的);如果没有则为null。参阅 [`pg_authid`](#calibre_link-811) 获取加密的口令是如何存储的信息。 | | `valuntil` | `abstime` | 口令失效的时间(只用于口令认证) | | `useconfig` | `text[]` | 运行时配置变量的会话缺省 |