2017-01-24 37 views
1

請考慮我的postgres數據庫admin1和admin2中有兩個管理員用戶。現在我使用admin1登錄並創建一個新的用戶temp。我可以使用登錄admin1刪除這個用戶,但是當我嘗試使用admin2刪除它時,它給了我錯誤「角色」temp「不能被刪除,因爲某些對象依賴於它」。Drop其他用戶創建的Postgresql用戶

創建管理員用戶聲明:

create user admin2 with password '...admin2'; 
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO admin2 WITH grant option; 
ALTER USER admin2 CREATEROLE; 

是否有我需要給Admin2的,這樣我可以刪除臨時另一個許可?

創建臨時用戶聲明:

create user temp with password '... temp'; 
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO temp; 

我降臨時用戶聲明:

REVOKE ALL PRIVILEGES ON ALL TABLES IN SCHEMA public FROM temp; 
REVOKE ALL ON DATABASE database FROM temp; 
DROP USER temp; 
+0

服務器版本,請 –

回答

0

CREATEROLE是足夠多的能夠刪除角色。但是所有的依賴關係都需要刪除。錯誤消息告訴你仍然存在依賴關係。

根據manual,您可以刪除與REASSIGN OWNEDDROP OWNED之間的依賴關係。例如

REASSIGN OWNED BY temp TO admin2; 
+0

如果那是的話,那麼它爲什麼被刪除時,我用誰創建的用戶,而無需重新分配所擁有的用戶(管理)將其刪除。 – Joy

+0

好點,不確定是否以admin2身份執行時,撤銷的工作是否正確? – Eelke

相關問題