ALTER ROLE(Transact-SQL)

적용 대상: SQL Server(지원되는 모든 버전) Azure SQL Database Azure SQL Managed Instance

데이터베이스 역할에 멤버를 추가하거나 데이터베이스 역할에서 멤버를 제거하거나 사용자 정의 데이터베이스 역할의 이름을 변경합니다.

참고

Azure Synapse Analytics 또는 분석 플랫폼 시스템(PDW)에서 멤버를 추가 또는 삭제하는 역할을 변경하려면 sp_addrolemember(Transact-SQL)sp_droprolemember(Transact-SQL)를 사용합니다.

Topic link iconTransact-SQL 구문 규칙

구문

-- Syntax for SQL Server (starting with 2012), Azure SQL Managed Instance, and Azure SQL Database  
  
ALTER ROLE  role_name  
{  
       ADD MEMBER database_principal  
    |  DROP MEMBER database_principal  
    |  WITH NAME = new_name  
}  
[;]  
-- Syntax for SQL Server 2008
  
-- Change the name of a user-defined database role  
ALTER ROLE role_name   
    WITH NAME = new_name  
[;]  

참고

SQL Server 2014 이전 버전의 Transact-SQL 구문을 보려면 이전 버전 설명서를 참조하세요.

인수

role_name
적용 대상: SQL Server(2008부터), Azure SQL Database, Azure SQL Managed Instance

변경할 데이터베이스 역할을 지정합니다.

ADD MEMBER database_principal
: SQL Server(2012부터 시작), Azure SQL Database, Azure SQL Managed Instance

데이터베이스 보안 주체를 데이터베이스 역할의 멤버 자격에 추가하도록 지정합니다.

  • database_principal은 데이터베이스 사용자 또는 사용자 정의 데이터베이스 역할입니다.

  • database_principal은 고정 데이터베이스 역할 또는 서버 보안 주체일 수 없습니다.

DROP MEMBER database_principal
: SQL Server(2012부터 시작), Azure SQL Database, Azure SQL Managed Instance

데이터베이스 역할의 멤버 자격에서 데이터베이스 보안 주체를 제거하도록 지정합니다.

  • database_principal은 데이터베이스 사용자 또는 사용자 정의 데이터베이스 역할입니다.

  • database_principal은 고정 데이터베이스 역할 또는 서버 보안 주체일 수 없습니다.

WITH NAME = new_name
적용 대상: SQL Server(2008부터), Azure SQL Database, Azure SQL Managed Instance

사용자 정의 데이터베이스 역할의 이름을 변경하도록 지정합니다. 새 이름은 데이터베이스에 없는 이름이어야 합니다.

데이터베이스 역할의 이름을 변경하더라도 역할의 ID 번호, 소유자 또는 사용 권한은 변경되지 않습니다.

사용 권한

이 명령을 실행하려면 다음 권한이나 멤버 자격 중 하나 이상이 필요합니다.

  • 역할에 대한 ALTER 권한
  • 데이터베이스에 대한 ALTER ANY ROLE 권한
  • db_securityadmin 고정 데이터베이스 역할의 멤버 자격

또한, 고정 데이터베이스 역할의 멤버를 변경하려면 다음이 필요합니다.

  • db_owner 고정 데이터베이스 역할의 멤버 자격

제한 사항

고정 데이터베이스 역할의 이름은 변경할 수 없습니다.

메타데이터

이 시스템 뷰에는 데이터베이스 역할 및 데이터베이스 보안 주체에 대한 정보가 포함됩니다.

A. 데이터베이스 역할의 이름 변경

적용 대상: SQL Server(2008부터), Azure SQL Database, Azure SQL Managed Instance

다음 예에서는 buyers 역할의 이름을 purchasing으로 변경합니다. 이 예제에서는 AdventureWorks 예제 데이터베이스에서 실행할 수 있습니다.

ALTER ROLE buyers WITH NAME = purchasing;  

B. 역할 멤버 추가 또는 제거

: SQL Server(2012부터 시작), Azure SQL Database, Azure SQL Managed Instance

다음 예에서는 Sales라는 데이터베이스 역할을 만듭니다. Barry라는 데이터베이스 사용자를 멤버 자격에 추가한 다음, Barry라는 멤버를 제거하는 방법을 보여줍니다. 이 예제에서는 AdventureWorks 예제 데이터베이스에서 실행할 수 있습니다.

CREATE ROLE Sales;  
ALTER ROLE Sales ADD MEMBER Barry;  
ALTER ROLE Sales DROP MEMBER Barry;  

C. Azure SQL Database의 특수 역할에 역할 멤버 추가

적용 대상: Azure SQL Database

이 예에서는 가상 master 데이터베이스에 SQL 로그인을 만들고, 해당 서버 로그인과 관련된 데이터베이스 사용자를 만들고, 데이터베이스 사용자를 특수 역할 dbmanager의 멤버로 추가합니다. 이 예에서는 사용자가 Azure SQL Database 논리 서버에서 데이터베이스를 만들고 삭제할 수 있습니다. Azure SQL Database 논리 서버의 가상 master 데이터베이스에서 예제를 실행합니다.

 CREATE LOGIN sqllogin_nlastname WITH password='aah3%#om1os';
    
 CREATE USER sqllogin_nlastname FOR LOGIN sqllogin_nlastname 
 WITH DEFAULT_SCHEMA = master;
    
 ALTER ROLE [dbmanager] add member sqllogin_nlastname;

참고 항목

CREATE ROLE(Transact-SQL)
보안 주체(데이터베이스 엔진)
DROP ROLE(Transact-SQL)
sp_addrolemember(Transact-SQL)
sys.database_role_members(Transact-SQL)
sys.database_principals(Transact-SQL)