Postgresql
無法在 PostgreSQL 12.4 中刪除使用者
我無法刪除使用者,因為我收到預設權限錯誤。
postgres=# drop user xyz; ERROR: role "xyz" cannot be dropped because some objects depend on it DETAIL: owner of default privileges on new functions belonging to role xyz
然後我檢查了數據庫中的預設權限,
postgres=# \ddp Default access privileges Owner | Schema | Type | Access privileges ---- -+------- +----------+------- xyz | | function |
你能告訴我如何撤銷這個預設權限嗎?
您必須授予“預設”預設權限:
ALTER DEFAULT PRIVILEGES FOR ROLE xyz GRANT EXECUTE ON FUNCTIONS TO PUBLIC; ALTER DEFAULT PRIVILEGES FOR ROLE xyz GRANT EXECUTE ON FUNCTIONS TO xyz;
然後你應該能夠放棄這個角色。
這是刪除角色的安全命令序列:
在數據庫集群的每個相關數據庫中執行。
REASSIGN OWNED BY xyz TO postgres; DROP OWNED BY xyz;
DROP OWNED
也擺脫了所有特權和預設特權!最後:
DROP ROLE xyz;
更詳細的解釋: