他のバージョンの文書 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

DROP ROLE

DROP ROLE — データベースロールを削除する

概要

DROP ROLE [ IF EXISTS ] name [, ...]

説明

DROP ROLEは指定したロール(複数可)を削除します。 スーパーユーザロールを削除するには、自身もスーパーユーザでなければなりません。 スーパーユーザ以外のロールを削除するには、CREATEROLE権限を持たなければなりません。

データベースクラスタのいずれかから参照されている場合、ロールを削除することができません。 削除しようとしてもエラーとなります。 ロールを削除する前に、そのロールが所有するオブジェクトすべてを削除(またはその所有権を変更)しなければなりません。 また、そのロールが他のオブジェクトについて付与された権限も取り消されなければなりません。 この目的のためにはREASSIGN OWNEDおよびDROP OWNEDコマンドが有用です。 詳しくは22.4を参照して下さい。

しかし、ロール内のロールメンバ資格を削除する必要はありません。 DROP ROLEは自動的に他のロール内にある対象ロールのメンバ資格を取り消します。 他のロールは削除されることも何らかの影響を受けることもありません。

パラメータ

IF EXISTS

ロールが存在しない場合でもエラーになりません。 この場合注意メッセージが発行されます。

name

削除対象のロールの名前です。

注釈

PostgreSQLには、このコマンドと同じ機能を持つプログラムdropuserがあります。 (実際には、このプログラムはこのコマンドを呼び出しています。) こちらはコマンドシェルから実行することができます。

ロールを削除します。

DROP ROLE jonathan;

互換性

標準SQLではDROP ROLEを定義していますが、一度に1つのロールしか削除することができません。 また、PostgreSQLとは異なる権限が必要であると規定しています。

関連項目

CREATE ROLE, ALTER ROLE, SET ROLE