ALTER SERVER ROLE (Transact-SQL)
サーバー ロールのメンバーシップを変更、またはユーザー定義のサーバー ロールの名前を変更します。 固定サーバー ロールの名前は変更できません。
構文
ALTER SERVER ROLE server_role_name
{
[ ADD MEMBER server_principal ]
| [ DROP MEMBER server_principal ]
| [ WITH NAME = new_server_role_name ]
} [ ; ]
引数
server_role_name
変更するサーバー ロールの名前を指定します。ADD MEMBER server_principal
指定されたサーバー プリンシパルをサーバー ロールに追加します。 server_principal には、ログインまたはユーザー定義サーバー ロールを指定できます。 server_principal に、固定サーバー ロール、データベース ロール、または sa を指定することはできません。DROP MEMBER server_principal
指定されたサーバー プリンシパルをサーバー ロールから削除します。 server_principal には、ログインまたはユーザー定義サーバー ロールを指定できます。 server_principal に、固定サーバー ロール、データベース ロール、または sa を指定することはできません。WITH NAME **=**new_server_role_name
ユーザー定義サーバー ロールの新しい名前を指定します。 サーバー内に存在しない名前を指定してください。
説明
ユーザー定義サーバー ロールの名前を変更しても、ロールの ID 番号、所有者、権限は変わりません。
ロールのメンバーシップを変更する場合は、sp_addsrvrolemember および sp_dropsrvrolemember の代わりに ALTER SERVER ROLE を使用してください。 これらのストアド プロシージャは非推奨です。
サーバー ロールを確認するには、sys.server_role_members カタログ ビューおよび sys.server_principals カタログ ビューに対してクエリを実行します。
ユーザー定義サーバー ロールの所有者を変更するには、ALTER AUTHORIZATION (Transact-SQL) を使用します。
権限
ユーザー定義サーバー ロールの名前を変更するには、サーバーに対する ALTER ANY SERVER ROLE 権限が必要です。
固定サーバー ロール
固定サーバー ロールにメンバーを追加するには、その固定サーバー ロールのメンバーであるか、sysadmin 固定サーバー ロールのメンバーである必要があります。
注 |
---|
CONTROL SERVER 権限と ALTER ANY SERVER ROLE 権限では、固定サーバー ロールに対して ALTER SERVER ROLE を実行することはできません。また、ALTER 権限は固定サーバー ロールに対して許可できません。 |
ユーザー定義サーバー ロール
ユーザー定義サーバー ロールにメンバーを追加するには、sysadmin 固定サーバー ロールのメンバーであるか、CONTROL SERVER または ALTER ANY SERVER ROLE 権限を持っている必要があります。 または、そのロールに対する ALTER 権限を持っている必要があります。
注 |
---|
固定サーバー ロールとは異なり、ユーザー定義サーバー ロールのメンバーは、同じロールにメンバーを追加する権限がもともとありません。 |
使用例
A. サーバー ロールの名前を変更する
次の例では、Product という名前のサーバー ロールを作成し、そのサーバー ロールの名前を Production に変更します。
CREATE SERVER ROLE Product ;
ALTER SERVER ROLE Product WITH NAME = Production ;
GO
B. ドメイン アカウントをサーバー ロールに追加する
次の例では、adventure-works\roberto0 という名前のドメイン アカウントを Production という名前のユーザー定義サーバー ロールに追加します。
ALTER SERVER ROLE Production ADD MEMBER [adventure-works\roberto0] ;
C. SQL Server ログインをサーバー ロールに追加する
次の例では、Ted という名前の SQL Server ログインを diskadmin 固定サーバー ロールに追加します。
ALTER SERVER ROLE diskadmin ADD MEMBER Ted ;
GO
D. サーバー ロールからドメイン アカウントを削除する
次の例では、Production という名前のユーザー定義サーバー ロールから adventure-works\roberto0 という名前のドメイン アカウントを削除します。
ALTER SERVER ROLE Production DROP MEMBER [adventure-works\roberto0] ;
E. サーバー ロールから SQL Server ログインを削除する
次の例では、diskadmin 固定サーバー ロールから Ted という名前の SQL Server ログインを削除します。
ALTER SERVER ROLE Production DROP MEMBER Ted ;
GO
F. ログインをユーザー定義サーバー ロールに追加する権限をログインに許可する
次の例では、Ted が他のログインを Production という名前のユーザー定義サーバー ロールに追加できるようにします。
GRANT ALTER ON SERVER ROLE::Production TO Ted ;
GO
G. ロールのメンバーシップを表示するには
ロールのメンバーシップを表示するには、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
関連項目
参照
CREATE SERVER ROLE (Transact-SQL)
DROP SERVER ROLE (Transact-SQL)
セキュリティ ストアド プロシージャ (Transact-SQL)
sys.server_role_members (Transact-SQL)
sys.server_principals (Transact-SQL)