다음을 통해 공유


sp_addrolemember(Transact-SQL)

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

항목 링크 아이콘Transact-SQL 구문 표기 규칙

구문

sp_addrolemember [ @rolename = ] 'role',
    [ @membername = ] 'security_account'

인수

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

반환 코드 값

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

주의

sp_addrolemember를 사용하여 역할에 추가된 멤버는 해당 역할의 사용 권한을 상속합니다. 새 멤버가 해당 데이터베이스 사용자가 없는 Windows 수준의 보안 주체인 경우에는 데이터베이스 사용자가 생성됩니다.

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

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

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

고정 역할의 멤버와 같은 유연한 역할을 추가하지 마십시오. 이 경우 의도하지 않은 권한 에스컬레이션이 발생할 수 있습니다.

사용 권한

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

  • db_owner 고정 데이터베이스 역할에 대한 멤버 자격
  • db_securityadmin 고정 데이터베이스 역할에 대한 멤버 자격
  • 역할을 소유한 역할에 대한 멤버 자격
  • 역할에 대한 ALTER 권한

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

1. Windows 로그인 추가

다음 예에서는 Windows 로그인 Contoso\Mary5

AdventureWorks 데이터베이스에 Mary5 사용자로 추가합니다. 그런 다음 사용자 Mary5Production 역할에 추가됩니다.

[!참고] Contoso\Mary5ssSampleDBnormal 데이터베이스에서 데이터베이스 사용자 Mary5로 알려져 있으므로 sp_addrolemember를 사용하여 Mary5 사용자 이름을 지정해야 합니다.

USE AdventureWorks
GO
EXEC sp_grantdbaccess 'Contoso\Mary5', 'Mary5'
GO
EXEC sp_addrolemember 'Production', 'Mary5'

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

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

EXEC sp_addrolemember 'Production', 'Mary5'

참고 항목

참조

보안 저장 프로시저(Transact-SQL)
sp_addsrvrolemember(Transact-SQL)
sp_droprolemember(Transact-SQL)
sp_grantdbaccess(Transact-SQL)
시스템 저장 프로시저(Transact-SQL)

도움말 및 정보

SQL Server 2005 지원 받기