sp_droprole (Transact-SQL)

適用対象: SQL サーバー

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

重要

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

Transact-SQL 構文表記規則

構文

sp_droprole [ @rolename = ] N'rolename'
[ ; ]

引数

[ @rolename = ] N'rolename'

現在のデータベースから削除するデータベース ロールの名前。 @rolenamesysname で、既定値はありません。 @rolename は、現在のデータベースに既に存在している必要があります。

リターン コードの値

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

解説

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

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

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

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

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

アクセス許可

ロール CONTROL アクセス許可が必要です。

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

EXEC sp_droprole 'Sales';
GO