ALTER SERVER ROLE(Transact-SQL)

적용 대상: SQL Server Azure SQL DatabaseAzure SQL Managed InstanceAnalytics Platform System(PDW)

서버 역할의 멤버 자격을 변경하거나 사용자 정의 서버 역할의 이름을 변경합니다. 고정 서버 역할은 이름을 바꿀 수 없습니다.

Transact-SQL 구문 규칙

Syntax

-- Syntax for SQL Server, Azure SQL Database, Azure SQL Managed Instance
  
ALTER SERVER ROLE server_role_name   
{  
    [ ADD MEMBER server_principal ]  
  | [ DROP MEMBER server_principal ]  
  | [ WITH NAME = new_server_role_name ]  
} [ ; ]  
-- Syntax for Parallel Data Warehouse  
  
ALTER SERVER ROLE  server_role_name  ADD MEMBER login;  
  
ALTER SERVER ROLE  server_role_name  DROP MEMBER login;  

인수

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 번호, 소유자 또는 사용 권한은 변경되지 않습니다.

역할 멤버쉽을 변경하는 경우 ALTER SERVER ROLE은 sp_addsrvrolemember 및 sp_dropsrvrolemember를 대체합니다. 이러한 저장 프로시저는 더 이상 사용되지 않습니다.

sys.server_role_memberssys.server_principals 카탈로그 뷰를 쿼리하여 서버 역할을 볼 수 있습니다.

사용자 정의 서버 역할의 소유자를 변경하려면 ALTER AUTHORIZATION(Transact-SQL)을 사용하세요.

Azure SQL 데이터베이스 ALTER SERVER ROLE 에서 master 를 실행해야 합니다.

사용 권한

사용자 정의 서버 역할의 이름을 변경하려면 서버에 대한 ALTER ANY SERVER ROLE 권한이 필요합니다.

고정 서버 역할

고정 서버 역할에 멤버를 추가하려면 고정 서버 역할의 멤버이거나 sysadmin 고정 서버 역할의 멤버여야 합니다.

참고

CONTROL SERVERALTER 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. 서버 역할에서 도메인 계정 제거

다음 예에서는 adventure-works\roberto0이라는 도메인 계정을 Production이라는 사용자 정의 서버 역할에서 제거합니다.

ALTER SERVER ROLE Production DROP MEMBER [adventure-works\roberto0] ;  

E. 서버 역할에서 SQL Server 로그인 제거

다음 예에서는 SQL Server 로그인 Teddiskadmin 고정 서버 역할에서 제거합니다.

ALTER SERVER ROLE Production DROP MEMBER Ted ;  
GO  

F. 로그인에 사용자 정의 서버 역할에 로그인을 추가할 수 있는 권한 부여

다음 예에서는 TedProduction 사용자 정의 서버 역할에 다른 로그인을 추가할 수 있도록 허용합니다.

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  

예제: 분석 플랫폼 시스템(PDW)

H. 서버 역할에 멤버 추가

다음 예는 Windows 로그인 AnnaLargeRC 서버 역할에 추가합니다.

ALTER SERVER ROLE LargeRC ADD MEMBER Anna;  

9\. 리소스 클래스에서 로그인 제거

다음 예제에서는 LargeRC 서버 역할에서 안나의 멤버 자격을 삭제합니다.

ALTER SERVER ROLE LargeRC DROP MEMBER Anna;  

다음 단계