sp_addrolemember(Transact-SQL)

 

이 항목은 다음에 적용됩니다.예SQL Server(2008부터 시작)예Azure SQL 데이터베이스예Azure SQL 데이터 웨어하우스예병렬 데이터 웨어하우스

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

System_CAPS_ICON_important.jpg 중요


Microsoft SQL Server의 이후 버전에서는 이 기능이 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 응용 프로그램은 수정하세요. 사용 하 여 ALTER ROLE 대신 합니다.

Topic link icon Transact-SQL 구문 표기 규칙

-- Syntax for SQL Server and Azure SQL Database  
  
sp_addrolemember [ @rolename = ] 'role',  
    [ @membername = ] 'security_account'  

-- Syntax for Azure SQL Data Warehouse and Parallel Data Warehouse  
  
sp_addrolemember 'role', 'security_account'  

[ @rolename= ] 'role'
현재 데이터베이스에 있는 데이터베이스 역할의 이름입니다. 역할 되는 sysname, 기본값은 없습니다.

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

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

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

역할은 자신의 역할 자체를 멤버로 포함할 수 없습니다. 이와 같은 "순환" 정의는 하나 이상의 중간 멤버 자격을 통해 멤버 자격이 간접적으로 유추되는 경우에도 유효하지 않습니다.

sp_addrolemember는 역할에 고정된 데이터베이스 역할, 고정된 서버 역할 또는 dbo를 추가할 수 없습니다. 사용자 정의 트랜잭션 내에서 sp_addrolemember는 실행할 수 없습니다.

데이터베이스 역할에 멤버를 추가할 경우에만 sp_addrolemember를 사용하십시오. 서버 역할에 멤버를 추가 하려면 sp_addsrvrolemember (& a) #40; TRANSACT-SQL )합니다.

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

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

  • 역할을 소유하는 역할의 멤버 자격

  • ALTER ANY ROLE 권한 또는 ALTER 역할에 대 한 권한이 있습니다.

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

1. Windows 로그인 추가

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

System_CAPS_ICON_note.jpg 참고


Contoso\Mary5는 AdventureWorks2012 데이터베이스에서 Mary5 데이터베이스 사용자로 알려져 있기 때문에 Mary5 사용자 이름을 지정해야 합니다. Contoso\Mary5라는 로그인이 없으면 문이 실패합니다. 사용자 도메인의 로그인을 사용하여 테스트하세요.

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

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

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

EXEC sp_addrolemember 'Production', 'Mary5';  

3. Windows 로그인 추가

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

System_CAPS_ICON_note.jpg 참고


때문에 로그인 LoginMary 데이터베이스 사용자로 알려져 UserMary 에 AdventureWorks2012 데이터베이스, 사용자 이름 UserMary 지정 해야 합니다. Mary5라는 로그인이 없으면 문이 실패합니다. 로그인 및 사용자에는 대개 동일한 이름을 있습니다. 이 예제에서는 사용자와 로그인에 영향을 주는 작업을 구분 하기 위해 서로 다른 이름을 사용 합니다.

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

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

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

EXEC sp_addrolemember 'Production', 'UserMary'  

보안 저장 프로시저 및 #40입니다. TRANSACT-SQL )
sp_addsrvrolemember & #40입니다. TRANSACT-SQL )
sp_droprolemember & #40입니다. TRANSACT-SQL )
sp_grantdbaccess & #40입니다. TRANSACT-SQL )
시스템 저장 프로시저 및 #40입니다. TRANSACT-SQL )
데이터베이스 수준 역할

커뮤니티 추가 항목

추가
표시: