ALTER SERVER ROLE(Transact-SQL)

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

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

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

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 권한이 있어야 합니다.

[!참고]

고정 서버 역할과 달리 사용자 정의 서버 역할의 멤버는 기본적으로 동일한 역할에 멤버를 추가할 수 있는 사용 권한이 없습니다.

1.서버 역할의 이름 변경

다음 예에서는 Product라는 서버 역할을 만든 다음 서버 역할 이름을 Production으로 변경합니다.

CREATE SERVER ROLE Product ;
ALTER SERVER ROLE Product WITH NAME = Production ;
GO

2.서버 역할에 도메인 계정 추가

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

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

3.서버 역할에 SQL Server 로그인 추가

다음 예에서는 Ted라는 SQL Server 로그인을 diskadmin 고정 서버 역할에 추가합니다.

ALTER SERVER ROLE diskadmin ADD MEMBER Ted ;
GO

4.서버 역할에서 도메인 계정 제거

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

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

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

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

ALTER SERVER ROLE Production DROP MEMBER Ted ;
GO

6.로그인에 사용 권한을 부여하여 사용자 정의 서버 역할에 로그인 추가

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

GRANT ALTER ON SERVER ROLE::Production TO Ted ;
GO

7.역할 멤버 자격 보기

역할 멤버 자격을 보려면 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)

CREATE ROLE(Transact-SQL)

ALTER ROLE(Transact-SQL)

DROP ROLE(Transact-SQL)

보안 저장 프로시저(Transact-SQL)

보안 함수(Transact-SQL)

sys.server_role_members(Transact-SQL)

sys.server_principals(Transact-SQL)

개념

보안 주체(데이터베이스 엔진)