sp_droprole (Transact-SQL)
適用対象: SQL サーバー
現在のデータベースからデータベース ロールを削除します。
重要
SQL Server 2005 (9.x) では、 sp_droprole
は DROP ROLE ステートメントに置き換えられました。 sp_droprole
は、以前のバージョンの SQL Server との互換性のためにのみ含まれており、今後のリリースではサポートされない可能性があります。
構文
sp_droprole [ @rolename = ] N'rolename'
[ ; ]
引数
[ @rolename = ] N'rolename'
現在のデータベースから削除するデータベース ロールの名前。 @rolename は sysname で、既定値はありません。 @rolename は、現在のデータベースに既に存在している必要があります。
リターン コードの値
0
(成功) または 1
(失敗)。
解説
sp_droprole
を使用して削除できるのは、データベース ロールだけです。
既存のメンバーを持つデータベース ロールを削除することはできません。 データベース ロールを削除するには、あらかじめそのデータベース ロールのすべてのメンバーを削除しておく必要があります。 ロールからユーザーを削除するには、 sp_droprolemember
を使用します。 ユーザーがまだロールのメンバーである場合は、 sp_droprole
それらのメンバーが表示されます。
固定ロールと public ロールは削除できません。
セキュリティ保護可能なリソースを所有しているロールは削除できません。 セキュリティ保護可能なリソースを所有しているアプリケーション ロールを削除するには、先にセキュリティ保護可能なリソースの所有権を譲渡するか削除する必要があります。 ALTER AUTHORIZATION
を使用して、削除してはならないオブジェクトの所有者を変更します。
sp_droprole
は、ユーザー定義トランザクション内では実行できません。
アクセス許可
ロール CONTROL
アクセス許可が必要です。
例
次の例では、アプリケーション ロール Sales
を削除します。
EXEC sp_droprole 'Sales';
GO