Amazon Redshift 自 2025 年 11 月 1 日起不再支援建立新的 Python UDF。如果您想要使用 Python UDF,請在該日期之前建立 UDF。現有 Python UDF 將繼續正常運作。如需詳細資訊,請參閱部落格文章
HAS_TABLE_PRIVILEGE
如果使用者具有指定之資料表的指定權限,則傳回 true,否則傳回 false。
語法
注意
這是領導者節點函數。此函數在參考使用者建立的資料表、STL 或 STV 系統資料表,或 SVV 或 SVL 系統檢視時會傳回錯誤。如需權限的相關資訊,請參閱 GRANT。
has_table_privilege( [ user, ] table, privilege)
引數
- user
-
要檢查資料表權限的使用者名稱。預設值是檢查目前使用者。
- %table
-
與權限相關聯的資料表。
- privilege
-
要檢查的權限。有效值如下:
-
SELECT
-
INSERT
-
UPDATE
-
DELETE
-
DROP
-
REFERENCES
-
傳回類型
BOOLEAN
範例
下列查詢發現 GUEST 使用者在 LISTING 資料表上沒有 SELECT 權限。
select has_table_privilege('guest', 'listing', 'select');has_table_privilege --------------------- false
下列查詢會使用 pg_tables 和 pg_user 目錄資料表的輸出,列出資料表權限,包括選取、插入、更新和刪除。這只是範例。您可能必須從資料庫中指定結構描述名稱和資料表名稱。如需更多詳細資訊,請參閱 查詢目錄資料表。
SELECT tablename ,usename ,HAS_TABLE_PRIVILEGE(users.usename, tablename, 'select') AS sel ,HAS_TABLE_PRIVILEGE(users.usename, tablename, 'insert') AS ins ,HAS_TABLE_PRIVILEGE(users.usename, tablename, 'update') AS upd ,HAS_TABLE_PRIVILEGE(users.usename, tablename, 'delete') AS del FROM (SELECT * from pg_tables WHERE schemaname = 'public' and tablename in ('event','listing')) as tables ,(SELECT * FROM pg_user) AS users;tablename | usename | sel | ins | upd | del ----------+-----------+--------+-------+-------+------- event | john | true | true | true | true event | sally | false | false | false | false event | elsa | false | false | false | false listing | john | true | true | true | true listing | sally | false | false | false | false listing | elsa | false | false | false | false
先前的查詢也包含交叉聯結。如需更多詳細資訊,請參閱 JOIN 範例。若要查詢不在 public 結構描述中的資料表,請從 WHERE 子句中移除 schemaname 條件,並在查詢之前使用下列範例。
SET SEARCH_PATH to 'schema_name';