DROP SERVER ROLE (Transact-SQL)

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

ユーザー定義サーバー ロールを削除します。

ユーザー定義サーバー ロールは、SQL Server 2012 (11.x) で新しく追加されました。

Transact-SQL 構文表記規則

構文

DROP SERVER ROLE role_name  

引数

role_name
サーバーから削除するユーザー定義サーバー ロールを指定します。

注釈

セキュリティ保護可能なリソースを所有するユーザー定義サーバー ロールは、サーバーから削除できません。 セキュリティ保護可能なリソースを所有するユーザー定義サーバー ロールを削除するには、まず、セキュリティ保護可能なリソースの所有権を転送するか、リソースを削除する必要があります。

メンバーを含むユーザー定義サーバー ロールは削除できません。 メンバーを含むユーザー定義サーバー ロールを削除するには、ALTER SERVER ROLE を使用して先にロールのメンバーを削除しておく必要があります。

固定サーバー ロールは削除できません。

ロールのメンバーシップに関する情報を確認するには、sys.server_role_members カタログ ビューに対してクエリを実行します。

アクセス許可

サーバー ロールに対する CONTROL 権限か、ALTER ANY SERVER ROLE 権限が必要です。

A. サーバー ロールを削除するには

次の例では、サーバー ロール purchasing を削除します。

DROP SERVER ROLE purchasing;  
GO  

B. ロールのメンバーシップを表示するには

ロールのメンバーシップを表示するには、SQL Server Management Studio の [サーバー ロール (メンバー)] ページを使用するか、次のクエリを実行します。

SELECT SRM.role_principal_id, SP.name AS Role_Name,   
SRM.member_principal_id, SP2.name  AS Member_Name  
FROM sys.server_role_members AS SRM  
JOIN sys.server_principals AS SP  
    ON SRM.Role_principal_id = SP.principal_id  
JOIN sys.server_principals AS SP2   
    ON SRM.member_principal_id = SP2.principal_id  
ORDER BY  SP.name,  SP2.name  

C. ロールのメンバーシップを表示するには

サーバー ロールが別のサーバー ロールを所有しているかどうかを判断するには、次のクエリを実行します。

SELECT SP1.name AS RoleOwner, SP2.name AS Server_Role  
FROM sys.server_principals AS SP1  
JOIN sys.server_principals AS SP2  
    ON SP1.principal_id = SP2.owning_principal_id   
ORDER BY SP1.name ;  

参照

ALTER ROLE (Transact-SQL)
CREATE ROLE (Transact-SQL)
プリンシパル (データベース エンジン)
DROP ROLE (Transact-SQL)
EVENTDATA (Transact-SQL)
sp_addrolemember (Transact-SQL)
sys.database_role_members (Transact-SQL)
sys.database_principals (Transact-SQL)