다음을 통해 공유


sp_addapprole(Transact-SQL)

현재 데이터베이스에 응용 프로그램 역할을 추가합니다.

중요 정보중요

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

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

구문

sp_addapprole [ @rolename = ] 'role' , [ @password = ] 'password'

인수

  • [ @rolename = ] 'role'
    새 응용 프로그램 역할의 이름입니다. role은 sysname이며 기본값은 없습니다. role은 반드시 유효한 식별자여야 하며 현재 데이터베이스에 미리 존재할 수 없습니다.

    응용 프로그램 역할 이름은 문자, 기호 및 숫자를 비롯하여 1자에서 128자까지의 문자를 포함할 수 있습니다. 역할 이름은 백슬래시(\)를 포함하거나 NULL 또는 빈 문자열('')이 될 수 없습니다.

  • [ @password = ] 'password'
    응용 프로그램 역할을 활성화하는 데 필요한 암호입니다. password는 sysname이며 기본값은 없습니다. password는 NULL이 될 수 없습니다.

반환 코드 값

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

주의

이전 버전의 SQL Server에서 사용자 및 역할은 스키마와 완전히 구분되지 않았습니다. SQL Server 2005부터 스키마는 역할과 완전히 구분됩니다. 이 새 아키텍처는 CREATE APPLICATION ROLE의 동작에 반영되었습니다. 이 문은 sp_addapprole을 대체합니다. 자세한 내용은 사용자와 스키마 분리를 참조하십시오.

이전 버전의 SQL Server와의 호환성을 유지하기 위해 sp_addapprole은 다음을 수행합니다.

  • 응용 프로그램 역할과 이름이 같은 스키마가 아직 없으면 해당 스키마가 생성됩니다. 새 스키마는 응용 프로그램 역할이 소유하고 응용 프로그램 역할의 기본 스키마가 됩니다.

  • 응용 프로그램 역할과 이름이 같은 스키마가 이미 있으면 프로시저가 실패합니다.

  • 암호 복잡성은 sp_addapprole에서 검사하지 않고 CREATE APPLICATION ROLE에서 검사합니다.

password 매개 변수는 단방향 해시로 저장됩니다.

사용자 정의 트랜잭션 내에서는 sp_addapprole 저장 프로시저를 실행할 수 없습니다.

보안 정보보안 정보

Microsoft ODBC encrypt 옵션은 SqlClient에서 지원하지 않습니다. 가능한 경우 런타임 시 사용자에게 응용 프로그램 역할 자격 증명을 입력하라는 메시지를 표시할 수도 있습니다. 자격 증명은 파일에 저장하지 않는 것이 좋습니다. 자격 증명을 유지해야 할 경우에는 CryptoAPI 함수를 사용하여 암호화합니다.

사용 권한

데이터베이스에 대한 ALTER ANY APPLICATION ROLE 권한이 필요합니다. 새 역할과 이름 및 소유자가 같은 스키마가 아직 없으면 데이터베이스에 대한 CREATE SCHEMA 권한도 필요합니다.

다음 예에서는 암호가 x97898jLJfcooFUYLKm387gf3인 새 응용 프로그램 역할 SalesApp 를 현재 데이터베이스에 추가합니다.

EXEC sp_addapprole 'SalesApp', 'x97898jLJfcooFUYLKm387gf3' ;
GO