時間:2024-02-24 17:17作者:下載吧人氣:64
當我們對Postgresql的某個用戶授予默認權(quán)限時, pg_default_acl表存儲要被分配給新創(chuàng)建對象的初始權(quán)限。你可能通過查詢該表獲取默認權(quán)限,先了解下官方文檔的解釋:
表 50-17. pg_default_acl的列:
名稱 | 類型 | 引用 | 描述 |
---|---|---|---|
oid | oid | 行標識符(隱藏屬性,必須被顯式選擇才會顯示) | |
defaclrole | oid | pg_authid.oid | 與此項相關(guān)的角色的OID |
defaclnamespace | oid | pg_namespace.oid | 與此項相關(guān)的名字空間的OID,如果沒有則為0 |
defaclobjtype | char | 此項適合的對象類型: r = 關(guān)系(表、視圖), S = 序列, f = 函數(shù), T = 類型 | |
defaclacl | aclitem[] | 此類對象在創(chuàng)建時應(yīng)用有的訪問權(quán)限 |
一個pg_default_acl項展示了要分配給屬于一個指定用戶的對象的初始權(quán)限。當前有兩類項:defaclnamespace = 0的”全局”項和引用一個特殊模式的”每模式”項。如果一個全局項存在,則它重載該對象類型的普通hard-wired默認權(quán)限。一個每模式項如果存在,表示權(quán)限將被加入到全局或hard-wired默認權(quán)限中。
演示數(shù)據(jù)庫版本:PostgreSQL 9.6.8
這里我們測試給test用戶添加“abc”模式的默認權(quán)限,先查看下當前schema的所有者:
// 查看當前schema的所有者,相當于du元命令
SELECT n.nspname AS “Name”,
pg_catalog.pg_get_userbyid(n.nspowner) AS “Owner”
FROM pg_catalog.pg_namespace n
WHERE n.nspname !~ ‘^pg_’ AND n.nspname <> ‘information_schema’
ORDER BY 1;
網(wǎng)友評論