Share via


sp_droprole (Transact-SQL)

現在のデータベースからデータベース ロールを削除します。

重要な注意事項重要

SQL Server 2005 では、sp_droprole は DROP ROLE ステートメントに置き換えられました。sp_droprole は、以前のバージョンの SQL Server との互換性を保つためにのみ用意されており、今後のリリースではサポートされない可能性があります。

トピック リンク アイコンTransact-SQL 構文表記規則

構文

sp_droprole [ @rolename= ] 'role'

引数

  • [ @rolename = ] 'role'
    現在のデータベースから削除するデータベース ロールの名前を指定します。role のデータ型は sysname で、既定値はありません。role は現在のデータベースに存在する必要があります。

戻り値

0 (成功) または 1 (失敗)

説明

sp_droprole を使用して削除できるのは、データベース ロールだけです。

メンバが既に存在するデータベース ロールは削除できません。データベース ロールを削除するには、あらかじめそのデータベース ロールのすべてのメンバを削除しておく必要があります。ユーザーをロールから削除するには、sp_droprolemember を使用します。ロールのメンバとなっているユーザーがまだ存在する場合、sp_droprole ではこれらのメンバが表示されます。

固定ロールと public ロールは削除できません。

ロールがセキュリティ保護可能なリソースを所有している場合、そのロールは削除できません。保護可能なアイテムを所有しているアプリケーション ロールを削除するには、先に保護可能なアイテムの所有権を移動するか削除する必要があります。削除禁止のオブジェクトの所有者を変更するには、ALTER AUTHORIZATION を使用します。

ユーザー定義のトランザクション内では、sp_droprole は実行できません。

権限

ロールに対する CONTROL 権限が必要です。

次の例では、アプリケーション ロール Sales を削除します。

EXEC sp_droprole 'Sales';
GO