sp_addrole(Transact-SQL)
적용 대상: SQL Server
현재 데이터베이스에 새 데이터베이스 역할을 만듭니다.
Important
sp_addrole
는 이전 버전의 SQL Server와의 호환성을 위해 포함되며 향후 릴리스에서는 지원되지 않을 수 있습니다. 대신 CREATE ROLE을 사용합니다.
구문
sp_addrole
[ @rolename = ] N'rolename'
[ , [ @ownername = ] N'ownername' ]
[ ; ]
인수
[ @rolename = ] N'rolename'
새 데이터베이스 역할의 이름입니다. @rolename 기본값이 없는 sysname입니다. @rolename 유효한 식별자여야 하며 현재 데이터베이스에 아직 없어야 합니다.
[ @ownername = ] N'ownername'
새 데이터베이스 역할의 소유자입니다. @ownername 현재 실행 중인 사용자의 기본값인 sysname입니다. @ownername 현재 데이터베이스의 데이터베이스 사용자 또는 데이터베이스 역할이어야 합니다.
반환 코드 값
0
(성공) 또는 1
(실패).
설명
SQL Server 데이터베이스 역할의 이름은 문자, 기호 및 숫자를 포함하여 1~128자를 포함할 수 있습니다. 데이터베이스 역할의 이름은 백슬래시 문자(\
), be 또는 빈 문자열(''
)을 포함할 NULL
수 없습니다.
데이터베이스 역할을 추가한 후 sp_addrolemember 사용하여 역할에 보안 주체를 추가합니다. 데이터베이스 역할에 사용 권한을 적용하는 데 , DENY
또는 REVOKE
문을 사용하는 경우 GRANT
데이터베이스 역할의 멤버는 사용 권한이 해당 계정에 직접 적용된 것처럼 해당 권한을 상속합니다.
참고 항목
새 서버 역할을 만들 수 없습니다. 역할은 데이터베이스 수준에서만 만들 수 있습니다.
sp_addrole
는 사용자 정의 트랜잭션 내에서 사용할 수 없습니다.
사용 권한
데이터베이스에 대한 CREATE ROLE
권한이 필요합니다. 스키마를 만드는 경우 데이터베이스에 필요합니다 CREATE SCHEMA
. @ownername 사용자 또는 그룹으로 지정된 경우 해당 사용자 또는 그룹에 필요합니다IMPERSONATE
. @ownername 역할로 지정된 경우 해당 역할 또는 해당 역할의 멤버에 대한 권한이 필요합니다ALTER
. 소유자가 애플리케이션 역할로 지정된 경우 해당 애플리케이션 역할에 대한 권한이 필요합니다 ALTER
.
예제
다음 예제에서는 현재 데이터베이스에 호출 Managers
된 새 역할을 추가합니다.
EXEC sp_addrole 'Managers';