Amazon Redshift
数据库开发人员指南 (API Version 2012-12-01)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

PG_DEFAULT_ACL

存储有关默认访问权限的信息。有关默认访问权限的更多信息,请参阅 ALTER DEFAULT PRIVILEGES

PG_DEFAULT_ACL 对所有用户可见。超级用户可以查看所有行;普通用户只能看到自己的数据。有关更多信息,请参阅 系统表及视图中数据的可见性

表列

列名称 数据类型 描述
defacluser integer 列出的权限所应用于的用户的 ID。
defaclnamespace oid 默认权限应用于的 schema 的对象 ID。如果未指定 schema,则默认值为 0。
defaclobjtype character

默认权限应用于的对象的类型。有效值如下所示:

  • r - relation(表或视图)

  • f - function

defaclacl aclitem[]

一个字符串,该字符串定义指定用户或用户组及对象类型的默认权限。

如果向用户授予权限,则字符串采用以下格式:

{ username=privilegestring/grantor }

username

向其授予权限的用户的名称。如果忽略 username,则将权限授予 PUBLIC。

如果向用户组授予权限,则字符串采用以下格式:

{ "group groupname=privilegestring/grantor" }

privilegestring

一个字符串,该字符串指定要授予的权限。

有效值为:

  • r - SELECT(读取)

  • a - INSERT(追加)

  • w - UPDATE(写入)

  • d - DELETE

  • x - 授予用于创建外键约束的权限 (REFERENCES)。

  • X - EXECUTE

  • * - 指示接收上一权限的用户又可以将相同权限授予其他用户 (WITH GRANT OPTION)。

grantor

已授予权限的用户的名称。

以下示例指示用户 admin 已将所有权限(包括 WITH GRANT OPTION)授予用户 dbuser

Copy
dbuser=r*a*w*d*x*X*/admin

示例

以下查询返回为数据库定义的所有默认权限。

Copy
select pg_get_userbyid(d.defacluser) as user, n.nspname as schema, case d.defaclobjtype when 'r' then 'tables' when 'f' then 'functions' end as object_type, array_to_string(d.defaclacl, ' + ') as default_privileges from pg_catalog.pg_default_acl d left join pg_catalog.pg_namespace n on n.oid = d.defaclnamespace; user | schema | object_type | default_privileges -------+--------+-------------+------------------------------------------------------- admin | tickit | tables | user1=r/admin + "group group1=a/admin" + user2=w/admin

上述示例中的结果表明,对于用户 admintickit schema 中创建的所有新表,admin 将 SELECT 权限授予 user1,将 INSERT 权限授予 group1,并将 UPDATE 权限授予 user2

本页内容: