DROP ROLE (Transact-SQL)

適用対象:SQL ServerAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

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

Transact-SQL 構文表記規則

構文

-- Syntax for SQL Server  
  
DROP ROLE [ IF EXISTS ] role_name  
-- Syntax for Azure Synapse Analytics and Parallel Data Warehouse  

DROP ROLE role_name  

Note

SQL Server 2014 (12.x) 以前のバージョンの Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。

引数

IF EXISTS
適用対象: SQL Server (SQL Server 2016 (13.x) から現在のバージョンまで)。

条件付きでは既に存在する場合にのみ、ロールを削除します。

role_name
データベースから削除するロールを指定します。

解説

セキュリティ保護可能なリソースを所有するロールは、データベースから削除できません。 セキュリティ保護可能なリソースを所有するデータベース ロールを削除するには、まず、セキュリティ保護可能なリソースの所有権を転送するか、リソースをデータベースから削除する必要があります。 メンバーを含むロールは、データベースから削除できません。 メンバーを含むロールを削除するには、まず、ロールのメンバーを削除する必要があります。

データベース ロールからメンバーを削除するには、ALTER ROLE (Transact-SQL) を使用します。

DROP ROLE を使用して、固定データベース ロールを削除することはできません。

ロールのメンバーシップに関する情報は、sys.database_role_members カタログ ビューで表示できます。

注意事項

SQL Server 2005 からスキーマの動作が変更されました。 その結果、スキーマがデータベース ユーザーと同じであると想定しているコードでは、正しい結果が返されない場合があります。 CREATE SCHEMA、ALTER SCHEMA、DROP SCHEMA、CREATE USER、ALTER USER、DROP USER、CREATE ROLE、ALTER ROLE、DROP ROLE、CREATE APPROLE、ALTER APPROLE、DROP APPROLE、ALTER AUTHORIZATION のいずれかの DDL ステートメントが使用されたことのあるデータベースでは、sysobjects などの古いカタログ ビューを使用しないでください。 そのようなデータベースでは、代わりに新しいカタログ ビューを使用してください。 新しいカタログ ビューでは、SQL Server 2005 で導入されたプリンシパルとスキーマの分離が考慮されます。 カタログ ビューの詳細については、「カタログ ビュー (Transact-SQL)」を参照してください。

サーバー ロールを削除するには、DROP SERVER ROLE (Transact-SQL) を使用します。

アクセス許可

データベースに対する ALTER ANY ROLE アクセス許可、ロールに対する CONTROL アクセス許可、または db_securityadmin のメンバーシップが必要です。

次の例では、データベース ロール purchasingAdventureWorks2022 データベースから削除します。

DROP ROLE purchasing;  
GO  

参照

CREATE ROLE (Transact-SQL)
ALTER ROLE (Transact-SQL)
プリンシパル (データベース エンジン)
EVENTDATA (Transact-SQL)
sp_addrolemember (Transact-SQL)
sys.database_role_members (Transact-SQL)
sys.database_principals (Transact-SQL)
セキュリティ関数 (Transact-SQL)