PostgreSQL 13.1 中文入门教程 PostgreSQL pg_init_privs

2024-02-25 开发教程 PostgreSQL 13.1 中文入门教程 匿名 2

目录pg_init_privs记录系统中对象的初始特权。数据库中每一个具有非默认(非-NULL)初始特权集合的对象都有一个条目在其中。

对象可以在系统初始化(initdb)时获得其初始特权,也可以在CREATE EXTENSION期间创建该对象并且在扩展脚本中用GRANT来设置对象的初始特权。注意系统将自动处理扩展脚本执行期间对特权的记录,扩展的作者们只需要在他们的脚本中使用GRANT以及 REVOKE语句以便特权被记录下来。privtype列表示初始特权是被initdb设置还是在一次CREATE EXTENSION命令期间被设置。

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

表 51.28. pg_init_privsColumns

列类型

描述

objoidoid(参考任何 OID 列)

指定对象的 OID

classoidoid(references pg_class.oid)

对象所在的系统目录的 OID

objsubidint4

对于一个表列,这里是列编号(objoidclassoid指向表本身)。对于所有其他对象类型,这列为零。

privtypechar

定义这个对象初始特权类型的代码,见文字说明

initprivsaclitem[]

初始的访问权限,详见第 5.7 节