다음을 통해 공유


sp_setapprole(Transact-SQL)

현재 데이터베이스의 응용 프로그램 역할과 연관된 사용 권한을 활성화합니다.

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

구문

sp_setapprole [ @rolename = ] 'role',
    [ @password = ] { encrypt N'password' } 
      |
        'password' [ , [ @encrypt = ] { 'none' | 'odbc' } ]
        [ , [ @fCreateCookie = ] true | false ]
    [ , [ @cookie = ] @cookie OUTPUT ]

인수

  • [ @rolename = ] 'role'
    현재 데이터베이스에 정의된 응용 프로그램 역할의 이름입니다. role은 sysname이며 기본값은 없습니다. role은 현재 데이터베이스에 있어야 합니다.

  • [ @password = ] { encrypt N'password' }
    응용 프로그램 역할을 활성화하는 데 필요한 암호입니다. password는 sysname이며 기본값은 없습니다. password는 ODBC encrypt 함수를 사용하여 난독 처리될 수 있습니다. encrypt 함수를 사용할 경우 첫 번째 따옴표 앞에 N을 두어 암호를 유니코드 문자열로 변환해야 합니다.

    암호화 옵션은 SqlClient를 사용 중인 연결에서 지원되지 않습니다.

    중요 정보중요

    ODBC encrypt 함수는 암호화를 제공하지 않습니다. 이 함수를 사용해서는 네트워크로 전송되는 암호를 보호할 수 없습니다. 이 정보가 네트워크를 통해 전송되는 경우 SSL이나 IPSec을 사용하십시오.

  • @encrypt = 'none'
    난독 처리가 사용되지 않도록 지정합니다. 암호는 일반 텍스트로 SQL Server에 전달됩니다. 기본값입니다.

  • @encrypt= 'odbc'
    ODBC가 암호를 SQL Server 데이터베이스 엔진으로 보내기 전에 ODBC encrypt 함수를 사용하여 암호를 난독 처리하도록 지정합니다. 이 값은 ODBC 클라이언트 또는 SQL Server용 OLE DB 공급자를 사용하는 경우에만 지정할 수 있습니다.

  • [ @fCreateCookie = ] true | false
    쿠키를 만들지 여부를 지정합니다. true는 암시적으로 1로 변환됩니다. false는 암시적으로 0으로 변환됩니다.

  • [ @cookie = ] @cookie OUTPUT
    쿠키를 포함할 출력 매개 변수를 지정합니다. 쿠키는 @fCreateCookie 값이 true인 경우에만 생성됩니다. varbinary(8000)

    [!참고]

    현재 sp_setapprole에 대한 쿠키 OUTPUT 매개 변수는 정확한 최대 길이인 varbinary(8000)로 정의되어 있습니다. 그러나 현재 구현은 varbinary(50)입니다. 응용 프로그램은 계속해서 varbinary(8000)를 예약하여 후속 릴리스에서 쿠키 반환 크기가 늘어날 경우에도 응용 프로그램이 제대로 작동할 수 있도록 해야 합니다.

반환 코드 값

0(성공) 및 1(실패)

주의

sp_setapprole을 사용하여 응용 프로그램 역할을 활성화하면 해당 역할은 사용자가 서버와 연결이 끊어지거나 sp_unsetapprole을 실행할 때까지 활성화되어 있습니다. sp_setapprole은 직접 Transact-SQL 문에 의해서만 실행될 수 있습니다. 다른 저장 프로시저 또는 사용자 정의 트랜잭션 내에서는 sp_setapprole을 실행할 수 없습니다.

응용 프로그램 역할에 대한 개요는 응용 프로그램 역할을 참조하십시오.

보안 정보보안 정보

응용 프로그램 역할 암호가 네트워크를 통해 전송되는 경우 이 암호를 보호하려면 응용 프로그램 역할을 사용할 때 항상 암호화된 연결을 사용해야 합니다.

Microsoft ODBC encrypt 옵션은 SqlClient에서 지원되지 않습니다. 자격 증명을 저장해야 할 경우에는 crypto API 함수를 사용하여 암호화합니다. password 매개 변수는 단방향 해시로 저장됩니다. 이전 버전의 SQL Server와 호환성을 유지하기 위해 암호 복잡성 정책은 sp_addapprole에서 강제되지 않습니다. 암호 복잡성 정책을 강제로 적용하려면 CREATE APPLICATION ROLE을 사용합니다.

사용 권한

public의 멤버 자격이 필요하고 역할에 대한 암호를 알아야 합니다.

1.암호화 옵션을 사용하지 않고 응용 프로그램 역할 활성화

다음 예에서는 현재 사용자가 사용하는 응용 프로그램에 대해 특별히 지정한 사용 권한을 부여하도록 만든 일반 텍스트 암호인 AsDeF00MbXX를 사용하여 SalesAppRole이라는 응용 프로그램 역할을 활성화합니다.

EXEC sp_setapprole 'SalesApprole', 'AsDeF00MbXX';
GO

2.쿠키를 사용하여 응용 프로그램 역할을 활성화한 다음 원래 컨텍스트로 되돌리기

다음 예에서는 fdsd896#gfdbfdkjgh700mM 암호로 Sales11 응용 프로그램 역할을 활성화하고 쿠키를 만듭니다. 다음 예에서는 현재 사용자의 이름을 반환한 다음 sp_unsetapprole을 실행하여 원래 컨텍스트로 되돌아갑니다.

DECLARE @cookie varbinary(8000);
EXEC sp_setapprole 'Sales11', 'fdsd896#gfdbfdkjgh700mM'
    , @fCreateCookie = true, @cookie = @cookie OUTPUT;
-- The application role is now active.
SELECT USER_NAME();
-- This will return the name of the application role, Sales11.
EXEC sp_unsetapprole @cookie;
-- The application role is no longer active.
-- The original context has now been restored.
GO
SELECT USER_NAME();
-- This will return the name of the original user. 
GO 

참고 항목

참조

시스템 저장 프로시저(Transact-SQL)

보안 저장 프로시저(Transact-SQL)

CREATE APPLICATION ROLE(Transact-SQL)

DROP APPLICATION ROLE(Transact-SQL)

sp_unsetapprole(Transact-SQL)