指定のロールが所有するオブジェクトの所有権を別のロールに変更する(REASSIGN OWNED)
PostgreSQL の環境で REASSIGN OWNED コマンドを使って指定したロールが所有するデータベースオブジェクトの所有権を別のロールに変更する方法について解説します。ロールを削除する前に別のロールに所有権を変更する場合などに使われます。
(Last modified: )
オブジェクトの所有権を別のロールに変更する
REASSIGN OWNED コマンドを使うと指定したロールがデータベース内に所有しているすべてのデータベースオブジェクトを別のロールに所有権を変更します。次の書式を使います。
REASSIGN OWNED BY old_role [, ...] TO new_role
指定したロール( old_role )が所有するオブジェクトの所有権を別のロール( new_role )に変更します。
-- --
それでは実際に試してみます。現在 mydb データベースには momo ロールが所有者の momo スキーマが作成されています。
\dn
また public スキーマの中には shoplist テーブルが作成されています。
\dt
また public スキーマの中の blog テーブルに対して momo ロールには SELECT の権限が追加されています。
\dp
それでは mydb データベース内で momo ロールが所有するオブジェクトの所有権を saru ロールに変更します。次のように実行してください。
reassign owned by momo to saru;
オブジェクトの所有権が saru ロールに変更されました。
-- --
それでは momo スキーマの所有権を確認してみます。
momo スキーマの所有権が saru ロールに変更されていることが確認できました。
次に public スキーマの中に作成されていた shoplist テーブルの所有権を確認してみます。
shoplist テーブルの所有権が saru ロールに変更されていることが確認できました。
最後に public スキーマの中の blog テーブルに対して momo ロールに追加されていた権限を確認してみます。
momo ロールに与えられていた権限についてはそのままです。 REASSIGN OWNED コマンドでは権限までは変更されません。
-- --
REASSIGN OWNED コマンドを使って指定したロールが所有しているデータベースオブジェクトの所有権を別のロールに変更する方法について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。