51.28. pg_init_privs

目录pg_init_privs记录有关系统中对象的初始特权的信息。数据库中的每个对象都有一个条目,该条目具有一组非默认(非 NULL)的初始特权。

通过初始化系统(通过 initdb)或在CREATE EXTENSION期间创建对象并且扩展脚本使用GRANT系统设置初始特权时,可以通过设置这些特权来使对象具有初始特权。请注意,系统将在扩展脚本期间自动处理特权的记录,并且扩展作者仅需要在脚本中使用GRANTREVOKE语句来记录特权。 privtype列指示初始权限是由 initdb 还是在CREATE EXTENSION命令期间设置的。

具有 initdb 设置的初始特权的对象将具有privtype'i'的条目,而具有CREATE EXTENSION设置的初始特权的对象将具有privtype'e'的条目。

表 51.28. pg_init_privs

NameTypeReferencesDescription
objoidoid任何 OID 列特定对象的 OID
classoidoidpg_class.oid对象所在的系统目录的 OID
objsubidint4 对于表列,这是列号(objoidclassoid表示表本身)。对于所有其他对象类型,此列为零。
privtypechar 定义此对象的初始特权类型的代码;看到 Literals
initprivsaclitem[] 初始访问权限;有关详情,请参见GRANTREVOKE