sp_addrolemember(Transact-SQL)

적용 대상:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System(PDW)

데이터베이스 사용자, 데이터베이스 역할, Windows 로그인 또는 Windows 그룹을 현재 데이터베이스의 데이터베이스 역할에 추가합니다.

Important

이 기능은 이후 버전의 SQL Server에서 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 애플리케이션은 수정하세요. 대신 ALTER ROLE을 사용합니다.

Transact-SQL 구문 표기 규칙

Syntax

sp_addrolemember
    [ @rolename = ] N'rolename'
    , [ @membername = ] N'membername'
[ ; ]

참고

이 구문은 Azure Synapse Analytics의 서버리스 SQL 풀에서 지원되지 않습니다.

인수

[ @rolename = ] N'rolename'

현재 데이터베이스의 데이터베이스 역할 이름입니다. @rolename 기본값이 없는 sysname입니다.

[ @membername = ] N'membername'

역할에 추가되는 보안 계정입니다. @membername sysname이며 기본값은 없습니다. @membername 데이터베이스 사용자, 데이터베이스 역할, Windows 로그인 또는 Windows 그룹일 수 있습니다.

반환 코드 값

0 (성공) 또는 1 (실패).

설명

역할에 추가된 멤버는 역할 sp_addrolemember 의 사용 권한을 상속합니다. 새 멤버가 해당 데이터베이스 사용자가 없는 Windows 수준 보안 주체인 경우 데이터베이스 사용자가 만들어지지만 로그인에 완전히 매핑되지 않을 수 있습니다. 로그인이 있고 데이터베이스에 액세스할 수 있는지 항상 확인하세요.

역할은 멤버로 자신을 포함할 수 없습니다. 멤버 자격이 하나 이상의 중간 멤버 자격에 의해 간접적으로 암시되는 경우에도 이러한 순환 정의는 유효하지 않습니다.

sp_addrolemember 는 고정 데이터베이스 역할, 고정 서버 역할 또는 dbo 를 역할에 추가할 수 없습니다.

데이터베이스 역할에 멤버를 추가하는 데만 사용합니다 sp_addrolemember . 서버 역할에 멤버를 추가하려면 sp_addsrvrolemember(Transact-SQL)를 사용합니다.

사용 권한

유연한 데이터베이스 역할에 멤버를 추가하려면 다음 권한 중 하나가 필요합니다.

  • db_securityadmin 또는 db_owner 고정 데이터베이스 역할의 멤버 자격입니다.

  • 역할을 소유하는 역할의 멤버 자격입니다.

  • ALTER ANY ROLE 역할에 대한 사용 권한 또는 ALTER 권한입니다.

고정 데이터베이스 역할에 멤버를 추가하려면 db_owner 고정 데이터베이스 역할의 멤버 자격이 필요합니다.

예제

A. Windows 로그인 추가

다음 예제에서는 사용자Mary5로 데이터베이스에 Windows 로그인 Contoso\Mary5AdventureWorks2022 추가합니다. 그런 다음 Mary5 사용자를 Production 역할에 추가합니다.

데이터베이스의 데이터베이스 사용자 Mary5AdventureWorks2022 라고 하므로 Contoso\Mary5 사용자 이름을 Mary5 지정해야 합니다. 로그인이 없는 한 Contoso\Mary5 문이 실패합니다. do기본 로그인을 사용하여 테스트합니다.

USE AdventureWorks2022;
GO
CREATE USER Mary5 FOR LOGIN [Contoso\Mary5];
GO

B. 데이터베이스 사용자 추가

다음 예에서는 Mary5 데이터베이스 사용자를 현재 데이터베이스의 Production 데이터베이스 역할에 추가합니다.

EXEC sp_addrolemember 'Production', 'Mary5';

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

C. Windows 로그인 추가

다음 예제에서는 사용자UserMary로 데이터베이스에 로그인 LoginMaryAdventureWorks2022 추가합니다. 그런 다음 UserMary 사용자를 Production 역할에 추가합니다.

참고 항목

로그인 LoginMary 을 데이터베이스의 데이터베이스 사용자 UserMaryAdventureWorks2022 라고 하므로 사용자 이름을 UserMary 지정해야 합니다. Mary5라는 로그인이 없으면 문이 실패합니다. 로그인과 사용자는 일반적으로 동일한 이름을 갖습니다. 이 예제에서는 다른 이름을 사용하여 로그인과 사용자에 영향을 주는 작업을 구분합니다.

-- Uses AdventureWorks2022
CREATE USER UserMary FOR LOGIN LoginMary;
GO
EXEC sp_addrolemember 'Production', 'UserMary'

D. 데이터베이스 사용자 추가

다음 예에서는 UserMary 데이터베이스 사용자를 현재 데이터베이스의 Production 데이터베이스 역할에 추가합니다.

EXEC sp_addrolemember 'Production', 'UserMary'