2010-11-30 36 views

回答

213
ALTER DATABASE name OWNER TO new_owner; 

查看the Postgresql manual's entry on this瞭解更多詳情。

+3

爲了完整這裏是手動的一部分記錄了這一點:http://www.postgresql.org/docs/current/static/sql-alterdatabase.html – 2010-11-30 12:29:17

7

Frank Heikens的答案只會更新數據庫所有權。通常,您還需要更新包含對象(包括表)的所有權。從Postgres 8.2開始,REASSIGN OWNED可用於簡化此任務。

首先,連接到管理數據庫和更新數據庫的所有權:

psql 
postgres=# REASSIGN OWNED BY old_name TO new_name; 

這是ALTER DATABASE命令的全局相當於弗蘭克的回答中提供,但不是更新的特定數據庫,改變它擁有的所有DB的所有權由'old_name'。

下一步是更新表的所有權爲每一個數據庫:

psql old_name_db 
old_name_db=# REASSIGN OWNED BY old_name TO new_name; 

這必須由「舊名稱」擁有的每個數據庫進行。該命令將更新數據庫中所有表的所有權。

相關問題