PostgreSQL | ロール(ユーザー) ROLE 作成 | 指定したロールが所有するオブジェクトの所有権を別のロールへ変更(REASSIGN OWNED)
REASSIGN OWNED コマンドを使用して、指定したロールが所有するデータベースオブジェクトの所有権を別のロールに変更する方法について説明する。ロールを削除する前に別のロールへ所有権を変更する場合などに使用される。
オブジェクトの所有権を別のロールに変更する
REASSIGN OWNED コマンドを使用すると、指定したロールがデータベース内で所有しているすべてのデータベースオブジェクトの所有権を別のロールに変更できる。形式は次のとおりである。
REASSIGN OWNED BY old_role [, ...] TO new_role
指定したロール (old_role) が所有するオブジェクトの所有権を別のロール (new_role) に変更する。
–
直接試してみる。現在 devkuma データベースには、mykuma ロール所有の mykuma スキーマが作成されている。
devkuma=# \dn
스키마(schema) 목록
이름 | 소유주
----------+----------
mykuma | mykuma
myschema | postgres
public | postgres
(3개 행)
devkuma=#
また、public スキーマには book テーブルが作成されている。
devkuma=# \dt
릴레이션(relation) 목록
스키마 | 이름 | 종류 | 소유주
--------+------+--------+----------
public | blog | 테이블 | postgres
public | book | 테이블 | mykuma
public | memo | 테이블 | postgres
(3개 행)
devkuma=#
public スキーマ内の blog テーブルには、mykuma ロールに SELECT 権限が追加されている。
devkuma=# \dp
액세스 권한
스키마 | 이름 | 종류 | 액세스 권한 | 칼럼 접근권한 | 정책
--------+------+--------+---------------------------+---------------+------
public | blog | 테이블 | postgres=arwdDxt/postgres+| |
| | | mykuma=r/postgres | |
public | book | 테이블 | | |
public | memo | 테이블 | postgres=arwdDxt/postgres | |
(3개 행)
devkuma=#
それでは devkuma データベースで mykuma ロールが所有するオブジェクトの所有権を superkuma ロールに変更してみる。次のように実行する。
devkuma=# reassign owned by mykuma to superkuma;
REASSIGN OWNED
devkuma=#
オブジェクトの所有権が superkuma ロールに変更された。
–
では mykuma スキーマの所有権を確認してみる。
devkuma=# \dn
스키마(schema) 목록
이름 | 소유주
----------+-----------
mykuma | superkuma
myschema | postgres
public | postgres
(3개 행)
devkuma=#
mykuma スキーマの所有権が superkuma ロールに変更されていることを確認できる。
次に、public スキーマに作成された book テーブルの所有権を確認する。
devkuma=# \dt
릴레이션(relation) 목록
스키마 | 이름 | 종류 | 소유주
--------+------+--------+-----------
public | blog | 테이블 | postgres
public | book | 테이블 | superkuma
public | memo | 테이블 | postgres
(3개 행)
devkuma=#
book テーブルの所有権が superkuma ロールに変更されていることを確認できる。
最後に、public スキーマ内の blog テーブルに mykuma ロールへ追加された権限を確認する。
devkuma=# \dp
액세스 권한
스키마 | 이름 | 종류 | 액세스 권한 | 칼럼 접근권한 | 정책
--------+------+--------+---------------------------+---------------+------
public | blog | 테이블 | postgres=arwdDxt/postgres+| |
| | | mykuma=r/postgres | |
public | book | 테이블 | | |
public | memo | 테이블 | postgres=arwdDxt/postgres | |
(3개 행)
devkuma=#
mykuma ロールに付与された権限はそのままである。REASSIGN OWNED コマンドは権限までは変更しない。
–
REASSIGN OWNED コマンドを使用して、指定したロールが所有しているデータベースオブジェクトの所有権を別のロールに変更する方法について説明した。