2010-11-30 12 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 –

+2

このコマンドはデータベースを削除しました... nice one – mArtinko5MB

+12

@ mArtinko5MB:不可能ですが、ALTERはデータベースを削除しません。 –

7

Frank Heikensの回答は、データベースの所有権のみを更新します。しばしば、含まれているオブジェクト(テーブルを含む)の所有権を更新したいこともあります。 Postgres 8.2以降では、この作業を簡略化するためにREASSIGN OWNEDが利用可能です。

まず、管理データベースと更新DBの所有権への接続:

psql 
postgres=# REASSIGN OWNED BY old_name TO new_name; 

これはフランクの答えで提供ALTER DATABASEコマンドのグローバル同等ですが、代わりに特定のDBを更新する、それが所有するすべてのDBの所有権を変更'old_name'によって。

次のステップは、各データベースのテーブルの所有権を更新することである。

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

これは「OLD_NAME」が所有する各DB上で実行されなければなりません。このコマンドは、DB内のすべてのテーブルの所有権を更新します。

関連する問題