回答:
ALTER DATABASE name OWNER TO new_owner;
詳細については、これに関するPostgresqlマニュアルのエントリを参照してください。
Frank Heikensの回答では、データベースの所有権のみが更新されます。多くの場合、含まれるオブジェクト(テーブルを含む)の所有権も更新します。Postgres 8.2以降、このタスクを簡略化するためにREASSIGN OWNEDが利用可能です。
重要な編集!
REASSIGN OWNED
元のロールがの場合は使用しないでpostgres
ください。DBインスタンス全体が損傷する可能性があります。このコマンドは、システムリソース(postgres0、postgres1など)を含むすべてのオブジェクトを新しい所有者で更新します
まず、管理データベースに接続し、DBの所有権を更新します。
psql
postgres=# REASSIGN OWNED BY old_name TO new_name;
これは、ALTER DATABASE
Frankの回答で提供されるコマンドのグローバルな同等物ですが、特定のDBを更新する代わりに、「old_name」が所有するすべてのDBの所有権を変更します。
次のステップは、各データベースのテーブル所有権を更新することです:
psql old_name_db
old_name_db=# REASSIGN OWNED BY old_name TO new_name;
これは、「old_name」が所有する各DBで実行する必要があります。このコマンドは、DB内のすべてのテーブルの所有権を更新します。
postgres
自分でない限り...難しい方法を学んだ。