DROP OWNED — データベースロールにより所有されるデータベースオブジェクトを削除します。
DROP OWNED BY { name
| CURRENT_ROLE | CURRENT_USER | SESSION_USER } [, ...] [ CASCADE | RESTRICT ]
DROP OWNED
は、現在のデータベース内にある、指定したロールが所有するオブジェクトをすべて削除します。
また、現在のデータベース内にあるオブジェクトや共有オブジェクト(データベース、テーブル空間)に対して指定したロールに与えられた権限も取り消されます。
name
所有するオブジェクトを削除し、その権限が取り消されるロールの名称です。
CASCADE
関連するオブジェクトに依存するオブジェクトを自動的に削除し、さらにそれらのオブジェクトに依存するすべてのオブジェクトも削除します(5.14参照)。
RESTRICT
他のデータベースオブジェクトが関連オブジェクトに依存する場合、ロールにより所有されるオブジェクトの削除を取りやめます。 これがデフォルトです。
DROP OWNED
はよく、複数ロールの削除の前処理として使用されます。
DROP OWNED
は現在のデータベース内のオブジェクトにのみ影響しますので、このコマンドを通常、削除予定のロールが所有するオブジェクトを持つデータベース毎に実行する必要があります。
CASCADE
オプションを使用すると、このコマンドで再帰的に他のユーザが所有するオブジェクトを処理する可能性があります。
代わりにREASSIGN OWNED
コマンドを使い、1つまたは複数のロールが所有するすべてのデータベースオブジェクトの所有権を再割り当てすることもできます。
ただしREASSIGN OWNED
は他のオブジェクトの権限については処理しません。
ロールにより所有されるデータベースおよびテーブル空間は削除されません。
詳しくは22.4を参照してください。
DROP OWNED
コマンドはPostgreSQLの拡張です。