.\\" auto-generated by docbook2man-spec $Revision: 1.2 $
.TH "DROP ROLE" "" "2007-05-04" "SQL - 言語" "SQLコマンド"
.SH NAME
DROP ROLE \- データベースロールを削除する

.SH SYNOPSIS
.sp
.nf
DROP ROLE [ IF EXISTS ] \fIname\fR [, ...]
.sp
.fi
.SH "説明"
.PP
\fBDROP ROLE\fRは指定したロール（複数可）を削除します。
スーパーユーザロールを削除するには、自身もスーパーユーザでなければなりません。
スーパーユーザ以外のロールを削除するには、CREATEROLE権限を持たなければなりません。
.PP
データベースクラスタのいずれかから参照されている場合、ロールを削除することができません。
削除しようとしてもエラーとなります。
ロールを削除する前に、そのロールが所有するオブジェクトすべてを削除（またはその所有権を変更）しなければなりません。
また、そのロールが付与した権限も取り上げなければなりません。
この目的のためにはREASSIGN OWNED [\fBreassign_owned\fR(l)]およびDROP OWNED [\fBdrop_owned\fR(l)]コマンドが有用です。
.PP
しかし、ロール内のロールメンバ資格を削除する必要はありません。
\fBDROP ROLE\fRは自動的に他のロール内にある対象ロールのメンバ資格を取り上げます。
他のロールは削除されることも何らかの影響を受けることもありません。
.SH "パラメータ"
.TP
\fBIF EXISTS\fR
ロールが存在しない場合でもエラーになりません。
この場合注意メッセージが発行されます。
.TP
\fB\fIname\fB\fR
削除対象のロールの名前です。
.SH "注釈"
.PP
PostgreSQLには、このコマンドと同じ機能を持つdropuser [\fBdropuser\fR(1)]プログラムがあります。
（実際には、このプログラムはこのコマンドを呼び出しています。）
こちらはコマンドシェルから実行することができます。
.SH "例"
.PP
ロールを削除します。
.sp
.nf
DROP ROLE jonathan;
.sp
.fi
.SH "互換性"
.PP
標準SQLでは\fBDROP ROLE\fRを定義していますが、一度に1つのロールしか削除することができません。
また、PostgreSQLとは異なる権限が必要であると規定しています。
.SH "関連項目"
CREATE ROLE [\fBcreate_role\fR(l)], ALTER ROLE [\fBalter_role\fR(l)], SET ROLE [\fBset_role\fR(l)]
