sp_addrole(Transact-SQL)
현재 데이터베이스에 새 데이터베이스 역할을 만듭니다.
중요 |
---|
sp_addrole은 이전 버전의 Microsoft SQL Server와의 호환성을 위해 제공되며 다음 번 릴리스에서는 지원되지 않을 수 있습니다. 대신 CREATE ROLE을 사용하십시오. |
구문
sp_addrole [ @rolename = ] 'role' [ , [ @ownername = ] 'owner' ]
인수
[ @rolename = ] 'role'
새 데이터베이스 역할의 이름입니다. role은 sysname이며 기본값은 없습니다. role은 올바른 식별자(ID)여야 하며 현재 데이터베이스에 미리 존재할 수 없습니다.[ @ownername =] 'owner'
새 데이터베이스 역할의 소유자입니다. owner는 sysname이며 기본값은 현재 실행 중인 사용자입니다. owner는 현재 데이터베이스의 데이터베이스 사용자 또는 데이터베이스 역할이어야 합니다.
반환 코드 값
0(성공) 또는 1(실패)
주의
SQL Server 데이터베이스 역할의 이름에는 문자, 기호 및 숫자 등을 포함하여 1자에서 128자까지의 문자를 사용할 수 있습니다. 데이터베이스 역할의 이름은 백슬래시(\)를 포함할 수 없고 NULL이거나 빈 문자열('')일 수 없습니다.
데이터베이스 역할을 추가한 후에는 sp_addrolemember(Transact-SQL)을 사용하여 역할에 보안 주체를 추가합니다. GRANT, DENY 또는 REVOKE 문을 사용하여 데이터베이스 역할에 사용 권한을 부여하는 경우 데이터베이스 역할의 멤버는 사용 권한이 자신의 계정에 직접 적용되는 것처럼 사용 권한을 상속합니다.
[!참고]
새 서버 역할은 만들 수 없습니다. 역할은 데이터베이스 수준에서만 만들 수 있습니다.
사용자 정의 트랜잭션 내에서는 sp_addrole을 사용할 수 없습니다.
사용 권한
데이터베이스에 대한 CREATE ROLE 권한이 필요합니다. 스키마를 만드는 경우에는 데이터베이스에 대한 CREATE SCHEMA 권한이 필요합니다. owner를 사용자 또는 그룹으로 지정한 경우에는 해당 사용자 또는 그룹에 대한 IMPERSONATE 권한이 필요합니다. owner를 역할로 지정한 경우에는 해당 역할이나 해당 역할의 멤버에 대한 ALTER 권한이 필요합니다. owner를 응용 프로그램 역할로 지정한 경우에는 해당 응용 프로그램 역할에 대한 ALTER 권한이 필요합니다.
예
다음 예에서는 현재 데이터베이스에 Managers라는 새 역할을 추가합니다.
EXEC sp_addrole 'Managers'