다음을 통해 공유


애플리케이션 역할

애플리케이션 역할은 애플리케이션이 사용자와 유사한 고유한 권한으로 실행할 수 있도록 하는 데이터베이스 보안 주체입니다. 애플리케이션 역할을 사용하여 특정 애플리케이션을 통해 연결하는 사용자에게만 특정 데이터에 액세스할 수 있습니다. 데이터베이스 역할과 달리 애플리케이션 역할에는 멤버가 없으며 기본적으로 비활성 상태입니다. 애플리케이션 역할은 두 인증 모드에서 모두 작동합니다. 애플리케이션 역할은 암호가 필요한 sp_setapprole 사용하여 사용하도록 설정됩니다. 애플리케이션 역할은 데이터베이스 수준 보안 주체이므로 해당 데이터베이스에서 게스트에게 부여된 사용 권한을 통해서만 다른 데이터베이스에 액세스할 수 있습니다. 따라서 게스트 가 사용하지 않도록 설정된 모든 데이터베이스는 다른 데이터베이스의 애플리케이션 역할에 액세스할 수 없습니다.

SQL Server에서 애플리케이션 역할은 서버 수준 보안 주체와 연결되지 않으므로 서버 수준 메타데이터에 액세스할 수 없습니다. 이 제한을 사용하지 않도록 설정하여 애플리케이션 역할이 서버 수준 메타데이터에 액세스하도록 허용하려면 전역 플래그 4616을 설정합니다. 자세한 내용은 추적 플래그(Transact-SQL)DBCC TRACEON(Transact-SQL)을 참조하세요.

애플리케이션 역할과 연결하기

다음 단계에서는 애플리케이션 역할이 보안 컨텍스트를 전환하는 프로세스를 구성합니다.

  1. 사용자가 클라이언트 애플리케이션을 실행합니다.

  2. 클라이언트 애플리케이션은 사용자로 SQL Server 인스턴스에 연결합니다.

  3. 그런 다음 애플리케이션은 애플리케이션에만 알려진 암호를 사용하여 sp_setapprole 저장 프로시저를 실행합니다.

  4. 애플리케이션 역할 이름 및 암호가 유효한 경우 애플리케이션 역할이 활성화됩니다.

  5. 이 시점에서 연결은 사용자의 사용 권한을 잃고 애플리케이션 역할의 사용 권한을 가정합니다.

애플리케이션 역할을 통해 얻은 권한은 연결 기간 동안 계속 적용됩니다.

이전 버전의 SQL Server에서는 애플리케이션 역할을 시작한 후 사용자가 원래 보안 컨텍스트를 다시 사용할 수 있는 유일한 방법은 연결을 끊고 SQL Server에 다시 연결하는 것입니다. SQL Server 2005부터 sp_setapprole 쿠키를 만드는 옵션이 있습니다. 쿠키에는 애플리케이션 역할을 사용하도록 설정하기 전에 컨텍스트 정보가 포함됩니다. 쿠키는 sp_unsetapprole 세션을 원래 컨텍스트로 되돌리는 데 사용할 수 있습니다. 이 새 옵션 및 예제에 대한 자세한 내용은 sp_setapprole(Transact-SQL)를 참조하세요.

중요합니다

ODBC 암호화 옵션은 SqlClient에서 지원되지 않습니다. 네트워크를 통해 기밀 정보를 전송하는 경우 SSL(Secure Sockets Layer) 또는 IPsec을 사용하여 채널을 암호화합니다. 클라이언트 애플리케이션에서 자격 증명을 유지해야 하는 경우 암호화 API 함수를 사용하여 자격 증명을 암호화합니다. SQL Server 2005 이상 버전에서는 매개 변수 암호 가 단방향 해시로 저장됩니다.

애플리케이션 역할을 만듭니다. 애플리케이션 역할 만들기CREATE APPLICATION ROLE(Transact-SQL)
애플리케이션 역할을 변경합니다. ALTER APPLICATION ROLE(Transact-SQL)
애플리케이션 역할을 삭제합니다. DROP APPLICATION ROLE(Transact-SQL)
애플리케이션 역할의 사용 sp_setapprole(Transact-SQL)

또한 참조하십시오

SQL Server 보안