DROP SERVER ROLE (Transact-SQL)

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

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

トピック リンク アイコン 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)

概念

プリンシパル (データベース エンジン)