PostgreSQL訪問許可權查詢函式彙總和使用舉例

chenfeng發表於2021-05-21

訪問許可權查詢函式彙總:

名稱 返回型別 描述
has_any_column_privilege( user, table, privilege) boolean 使用者有沒有表中任意列上的許可權
has_any_column_privilege( table, privilege) boolean 當前使用者有沒有表中任意列上的許可權
has_column_privilege( user, table, column, privilege) boolean 使用者有沒有列的許可權
has_column_privilege( table, column, privilege) boolean 當前使用者有沒有列的許可權
has_database_privilege( user, database, privilege) boolean 使用者有沒有資料庫的許可權
has_database_privilege( database, privilege) boolean 當前使用者有沒有資料庫的許可權
has_foreign_data_wrapper_privilege( user, fdw, privilege) boolean 使用者有沒有外部資料包裝器上的許可權
has_foreign_data_wrapper_privilege( fdw, privilege) boolean 當前使用者有沒有外部資料包裝器上的許可權
has_function_privilege( user, function, privilege) boolean 使用者有沒有函式上的許可權
has_function_privilege( function, privilege) boolean 當前使用者有沒有函式上的許可權
has_language_privilege( user, language, privilege) boolean 使用者有沒有語言上的許可權
has_language_privilege( language, privilege) boolean 當前使用者有沒有語言上的許可權
has_schema_privilege( user, schema, privilege) boolean 使用者有沒有模式上的許可權
has_schema_privilege( schema, privilege) boolean 當前使用者有沒有模式上的許可權
has_sequence_privilege( user, sequence, privilege) boolean 使用者有沒有序列上的許可權
has_sequence_privilege( sequence, privilege) boolean 當前使用者有沒有序列上的許可權
has_server_privilege( user, server, privilege) boolean 使用者有沒有外部伺服器上的許可權
has_server_privilege( server, privilege) boolean 當前使用者有沒有外部伺服器上的許可權
has_table_privilege( user, table, privilege) boolean 使用者有沒有表上的許可權
has_table_privilege( table, privilege) boolean 當前使用者有沒有表上的許可權
has_tablespace_privilege( user, tablespace, privilege) boolean 使用者有沒有表空間上的許可權
has_tablespace_privilege( tablespace, privilege) boolean 當前使用者有沒有表空間上的許可權
has_type_privilege( user, type, privilege) boolean 使用者有沒有型別的特權
has_type_privilege( type, privilege) boolean 當前使用者有沒有型別的特權
pg_has_role( user, role, privilege) boolean 使用者有沒有角色上的許可權
pg_has_role( role, privilege) boolean 當前使用者有沒有角色上的許可權
row_security_active( table) boolean 當前使用者是否在表上開啟了行級安全性



使用舉例:

檢視t1表是否有select許可權:

11:21:15 (test@127.0.0.1:5432)test=# \c test test

您現在已經連線到資料庫 "test",使用者 "test".

11:21:18 (test@127.0.0.1:5432)test=# SELECT has_table_privilege('t1', 'select');

 has_table_privilege 

---------------------

 t

(1 行記錄)


時間:1.565 ms


檢視test使用者是否有usage許可權:

11:22:23 (test@127.0.0.1:5432)test=# select pg_has_role('test','usage');

 pg_has_role 

-------------

 t

(1 行記錄)


時間:0.752 ms


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2773275/,如需轉載,請註明出處,否則將追究法律責任。

相關文章