다음을 통해 공유


ALTER ROLE(Transact-SQL)

적용 대상:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceMicrosoft Fabric 의 SQL 분석 엔드포인트Microsoft Fabric의 웨어하우스Microsoft Fabric의 SQL 데이터베이스

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

Note

Azure Synapse Analytics 및 PDW(Analytics Platform System)의 역할에서 멤버를 추가하거나 삭제하려면 sp_addrolemember(Transact-SQL) 및 sp_droprolemember(Transact-SQL)를 사용합니다.

Transact-SQL 구문 표기 규칙

Syntax

SQL Server 구문(2012년부터), Azure SQL Managed Instance, Azure SQL Database 및 Microsoft Fabric.

ALTER ROLE  role_name  
{  
       ADD MEMBER database_principal  
    |  DROP MEMBER database_principal  
    |  WITH NAME = new_name  
}  
[;]  

2012년 이전의 SQL Server 구문입니다.

-- Change the name of a user-defined database role  
ALTER ROLE role_name   
    WITH NAME = new_name  
[;]  

Arguments

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

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

회원 추가 database_principal
: SQL Server(2012부터 시작), Azure SQL Database, Azure SQL Managed Instance

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

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

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

멤버 database_principal 드롭
: SQL Server(2012부터 시작), Azure SQL Database, Azure SQL Managed Instance

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

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

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

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

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

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

Permissions

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

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

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

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

제한 사항

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

Metadata

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

Examples

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)