다음을 통해 공유


sp_addrole(Transact-SQL)

적용 대상: SQL Server

현재 데이터베이스에 새 데이터베이스 역할을 만듭니다.

Important

sp_addrole 는 이전 버전의 SQL Server와의 호환성을 위해 포함되며 향후 릴리스에서는 지원되지 않을 수 있습니다. 대신 CREATE ROLE을 사용합니다.

Transact-SQL 구문 표기 규칙

구문

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';