PostgreSQL 9.0.0文書
前のページ | 巻戻し |  | 早送り | 次のページ

# DROP ROLE

## 名前

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

## 概要

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

## 説明

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

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

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

## パラメータ

`IF EXISTS`

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

`name`

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

## 注釈

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

## 例

ロールを削除します。

    DROP ROLE jonathan;

## 互換性

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

## 関連項目

CREATE ROLE, ALTER ROLE, SET ROLE

前のページ | ホーム | 次のページ
DROP OWNED | 上に戻る | DROP RULE