PG_DEFAULT_ACL - Amazon Redshift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

PG_DEFAULT_ACL

儲存預設存取權限的相關資訊。如需預設存取權限的相關資訊,請參閱 ALTER DEFAULT PRIVILEGES

所有使用者都可看見 PG_DEFAULT_ACL。超級使用者可以看見所有資料列;一般使用者只能看見自己的資料。如需詳細資訊,請參閱系統資料表和檢視中資料的可見性

資料表欄

欄名稱 資料類型 描述
defacluser integer 將所列權限套用至其中的使用者 ID。
defaclnamespace oid 將預設權限所套用至其中的結構描述物件 ID。如果未指定任何結構描述,預設值會是 0。
defaclobjtype character

將預設權限所套用至其中的物件類型。有效值如下:

  • r–關聯 (資料表或檢視)

  • f–函數

  • p–預存程序

defaclacl aclitem[]

定義指定使用者或使用者群組的預設權限和物件類型的字串。

如果將此權限授予另一個使用者,字串格式如下:

{ username=privilegestring/grantor }

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

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

範例

下列查詢會傳回為資料庫定義之所有預設權限。

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

上述範例中的結果顯示,對於使用者在tickit結構描述admin中建立的所有新資料表, 會將SELECT權限admin授予 user1、 INSERT 權限授予 group1,以及 UPDATE權限授予 user2