sp_addrolemember(Transact-SQL)
적용 대상:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System(PDW)
데이터베이스 사용자, 데이터베이스 역할, Windows 로그인 또는 Windows 그룹을 현재 데이터베이스의 데이터베이스 역할에 추가합니다.
Important
이 기능은 이후 버전의 SQL Server에서 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 애플리케이션은 수정하세요. 대신 ALTER ROLE을 사용합니다.
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\Mary5
을 AdventureWorks2022
추가합니다. 그런 다음 Mary5
사용자를 Production
역할에 추가합니다.
데이터베이스의 데이터베이스 사용자 Mary5
AdventureWorks2022
라고 하므로 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
로 데이터베이스에 로그인 LoginMary
을 AdventureWorks2022
추가합니다. 그런 다음 UserMary
사용자를 Production
역할에 추가합니다.
참고 항목
로그인 LoginMary
을 데이터베이스의 데이터베이스 사용자 UserMary
AdventureWorks2022
라고 하므로 사용자 이름을 UserMary
지정해야 합니다. Mary5
라는 로그인이 없으면 문이 실패합니다. 로그인과 사용자는 일반적으로 동일한 이름을 갖습니다. 이 예제에서는 다른 이름을 사용하여 로그인과 사용자에 영향을 주는 작업을 구분합니다.
-- Uses AdventureWorks2022
CREATE USER UserMary FOR LOGIN LoginMary;
GO
EXEC sp_addrolemember 'Production', 'UserMary'
D. 데이터베이스 사용자 추가
다음 예에서는 UserMary
데이터베이스 사용자를 현재 데이터베이스의 Production
데이터베이스 역할에 추가합니다.
EXEC sp_addrolemember 'Production', 'UserMary'
관련 콘텐츠
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기