W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎勵
由于角色可以擁有數(shù)據(jù)庫對象并且能持有訪問其他對象的特權(quán),刪除一個角色 常常并非一次DROP ROLE就能解決。任何被該用戶所擁有 的對象必須首先被刪除或者轉(zhuǎn)移給其他擁有者,并且任何已被授予給該角色的 權(quán)限必須被收回。
對象的擁有關(guān)系可以使用ALTER
命令一次轉(zhuǎn)移出去,例如:
ALTER TABLE bobs_table OWNER TO alice;
此外,REASSIGN OWNED命令可以被用來把要被刪除的 角色所擁有的所有對象的擁有關(guān)系轉(zhuǎn)移給另一個角色。由于 REASSIGN OWNED
不能訪問其他數(shù)據(jù)庫中的對象,有必要 在每一個包含該角色所擁有對象的數(shù)據(jù)庫中運(yùn)行該命令(注意第一個這樣的
REASSIGN OWNED
將更改任何在數(shù)據(jù)庫間共享的該角色擁 有的對象的擁有關(guān)系,即數(shù)據(jù)庫或者表空間)。
一旦任何有價值的對象已經(jīng)被轉(zhuǎn)移給新的擁有者,任何由被刪除角色擁有的剩余對象 就可以用DROP OWNED命令刪除。再次,由于這個命令不能 訪問其他數(shù)據(jù)庫中的對象, 有必要在每一個包含該角色所擁有對象的數(shù)據(jù)庫中運(yùn)行 該命令。還有,DROP OWNED
將不會刪除整個數(shù)據(jù)庫或者表空間,
因此如果該角色擁有任何還沒有被轉(zhuǎn)移給新?lián)碛姓叩臄?shù)據(jù)庫或者表空間,有必要手工 刪除它們。
DROP OWNED
也會注意移除為不屬于目標(biāo)角色的對象授予給目標(biāo) 角色的任何特權(quán)。因?yàn)?code class="command">REASSIGN OWNED不會觸碰這類對象,通 常有必要運(yùn)行REASSIGN OWNED
和 DROP OWNED
(按照這個順序?。┮酝耆匾瞥粍h除對象的 從屬物。
總之,移除曾經(jīng)擁有過對象的角色的方法是:
REASSIGN OWNED BY doomed_role TO successor_role;
DROP OWNED BY doomed_role;
-- 在集簇中的每一個數(shù)據(jù)庫中重復(fù)上述命令
DROP ROLE doomed_role;
如果不是所有的擁有對象都被轉(zhuǎn)移給了同一個后繼擁有者,最好手工處理異常 然后執(zhí)行上述步驟直到結(jié)束。
如果在依賴對象還存在時嘗試了DROP ROLE
,它將發(fā)出 消息標(biāo)識哪些對象需要被重新授予或者刪除。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: