30.7. column_privileges

視圖 column_privileges 標出所有賦予目前用戶的字串或者目前用戶賦予的所有字串。 每個字串、授權人和被賦予權利的用戶組成一行。給予一個組賦予的權限在 role_column_grants 裡標出。

PostgreSQL 裡,您只能在整個資料表上賦予權限, 而不是獨立的字串。因此,這個視圖包含和 table_privileges 一樣的訊息,只是每個合適的資料表裡面的每個字串都有一行,但是它只覆蓋那些對每字串的權限粒度有意義的權限:SELECTINSERTUPDATEREFERENCES。 如果您想讓您的應用可以適用於未來的開發,通常使用這個視圖比用 table_privileges 好,只要您需要考慮上面的權限之一。

Table 30-5. column_privileges 字串

名字資料類型描述
grantorsql_identifier賦予權限的用戶的名字
granteesql_identifier被賦予權限的用戶或組的名字
table_catalogsql_identifier包含這些字串的資料表所在的資料庫名字(總是目前資料庫)
table_schemasql_identifier包含該字串的資料表所在的模式的名字
table_namesql_identifier包含該字串的資料表的名字
column_namesql_identifier該字串的名字
privilege_typecharacter_data 權限類型:SELECTINSERTUPDATE, 或者 REFERENCES
is_grantablecharacter_data如果權限可以賦予,為YES,否則為 NO

請注意字串 grantee 在用戶和組之間沒有區別。 如果您有同名的用戶和組,那麼就很不幸沒有好辦法區分他們。 將來的 PostgreSQL 版本可能禁止用戶和組同名。