pg_init_privs #目录pg_init_privs记录系统中对象的初始权限。数据库中每个具有非默认(非 NULL)初始权限集合的对象都在其中有一个条目。
对象可以在系统初始化(initdb)时获得其初始权限,也可以在CREATE EXTENSION期间创建该对象,并在扩展脚本中用GRANT设置对象的初始权限。 注意,系统会自动处理扩展脚本执行期间对权限的记录;扩展作者只需要在脚本中使用GRANT和REVOKE语句,权限就会被记录下来。 privtype列表示初始权限是由initdb设置,还是在某次CREATE EXTENSION命令期间设置。
对于初始权限由initdb设置的对象,其条目中的privtype是'i';对于初始权限由CREATE EXTENSION设置的对象,其条目中的privtype为'e'。
Table 51.28. pg_init_privs 列
| Name | 类型 | 引用 | 描述 |
|---|---|---|---|
objoid |
oid |
任意 OID 列 | 指定对象的 OID |
classoid |
oid |
|
对象所在的系统目录的 OID |
objsubid |
int4 |
对于一个表列,这里是列编号(objoid和classoid指向表本身)。对于所有其他对象类型,这列为零。 |
|
privtype |
char |
定义此对象初始权限类型的代码,见文字说明 | |
initprivs |
aclitem[] |
初始的访问权限,详见Section 5.7 |