時(shí)間:2024-02-24 17:17作者:下載吧人氣:68
當(dāng)我們對(duì)Postgresql的某個(gè)用戶(hù)授予默認(rèn)權(quán)限時(shí), pg_default_acl表存儲(chǔ)要被分配給新創(chuàng)建對(duì)象的初始權(quán)限。你可能通過(guò)查詢(xún)?cè)摫慝@取默認(rèn)權(quán)限,先了解下官方文檔的解釋?zhuān)?/p>
表 50-17. pg_default_acl的列:
名稱(chēng) | 類(lèi)型 | 引用 | 描述 |
---|---|---|---|
oid | oid | 行標(biāo)識(shí)符(隱藏屬性,必須被顯式選擇才會(huì)顯示) | |
defaclrole | oid | pg_authid.oid | 與此項(xiàng)相關(guān)的角色的OID |
defaclnamespace | oid | pg_namespace.oid | 與此項(xiàng)相關(guān)的名字空間的OID,如果沒(méi)有則為0 |
defaclobjtype | char | 此項(xiàng)適合的對(duì)象類(lèi)型: r = 關(guān)系(表、視圖), S = 序列, f = 函數(shù), T = 類(lèi)型 | |
defaclacl | aclitem[] | 此類(lèi)對(duì)象在創(chuàng)建時(shí)應(yīng)用有的訪問(wèn)權(quán)限 |
一個(gè)pg_default_acl項(xiàng)展示了要分配給屬于一個(gè)指定用戶(hù)的對(duì)象的初始權(quán)限。當(dāng)前有兩類(lèi)項(xiàng):defaclnamespace = 0的”全局”項(xiàng)和引用一個(gè)特殊模式的”每模式”項(xiàng)。如果一個(gè)全局項(xiàng)存在,則它重載該對(duì)象類(lèi)型的普通hard-wired默認(rèn)權(quán)限。一個(gè)每模式項(xiàng)如果存在,表示權(quán)限將被加入到全局或hard-wired默認(rèn)權(quán)限中。
演示數(shù)據(jù)庫(kù)版本:PostgreSQL 9.6.8
這里我們測(cè)試給test用戶(hù)添加“abc”模式的默認(rèn)權(quán)限,先查看下當(dāng)前schema的所有者:
// 查看當(dāng)前schema的所有者,相當(dāng)于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)友評(píng)論