Service Broker 사용자 수준 권한
두 개 이상의 인스턴스를 포함하는 대부분의 Service Broker 응용 프로그램은 해당 응용 프로그램을 위해 특별히 생성된 데이터베이스 보안 주체의 보안 컨텍스트에서 실행됩니다. 이러한 데이터베이스 보안 주체는 응용 프로그램이 수행하는 작업을 완료하는 데 필요한 최소 권한을 가져야 합니다.
다음은 Service Broker 응용 프로그램용으로 생성된 데이터베이스 보안 주체에 적용되는 고려 사항입니다.
- Service Broker 원격 권한 부여는 원격 Service Broker 응용 프로그램이 SQL Server에 연결되어 메시지를 인스턴스로 배달할 때 적용됩니다. 원격 권한 부여를 위해 지정된 데이터베이스 보안 주체는 시작 서비스를 호스팅하는 데이터베이스에서 CONNECT 권한을 가져야 하며 시작 서비스 자체에 대해서는 SEND 권한을 가져야 합니다. 사용자는 인증에 사용되는 인증서를 소유해야 합니다. 사용자가 다른 개체를 소유하거나, 다른 권한을 갖거나, 다른 메커니즘으로 로그인하기 위해 필요한 요구 사항은 없습니다.
- 데이터베이스 보안 주체가 대화를 시작하려면 해당 보안 주체에 시작 서비스의 큐에 대한 RECEIVE 권한이 있어야 합니다.
- 시작 서비스를 소유하는 데이터베이스 보안 주체는 대상 서비스에 대한 SEND 권한이 있어야 합니다.
- 데이터베이스 보안 주체가 서비스에 메시지를 보내려면 해당 보안 주체에 서비스에 대한 SEND 권한이 있어야 합니다. 다른 인스턴스에서 호스팅되는 서비스의 경우 Service Broker 대화 보안에 따라 원격 인스턴스의 데이터베이스 보안 주체가 결정됩니다. 자세한 내용은 Service Broker 대화 보안을 참조하십시오. Service Broker는 SEND 권한을 검사할 때 Windows 역할의 멤버 자격을 고려하지 않습니다.
- 활성화 저장 프로시저에 대한 사용자로 지정된 사용자는 프로시저를 실행할 수 있는 권한이 있어야 합니다. 많은 경우 지정된 사용자는 프로시저의 문을 실행하는 데 필요한 권한을 가지고 있습니다. 그러나 EXECUTE AS 절을 사용하여 저장 프로시저 자체가 정의되면 저장 프로시저의 문은 저장 프로시저에서 정의된 보안 컨텍스트로 실행됩니다. SQL Server는 먼저 보안 컨텍스트를 큐에 대해 지정된 사용자로 설정합니다. 그런 다음 SQL Server는 저장 프로시저를 실행하고 저장 프로시저는 보안 컨텍스트를 프로시저에 대해 지정된 사용자로 변경합니다.
- Service Broker 전송 보안에 SSPI가 사용되면 원격 데이터베이스에 대한 서비스 계정은 master에서 CONNECT 권한이 있어야 하며 로그인에도 해당되어야 합니다. 따라서 원격 SQL Server 인스턴스가 실행되는 계정은 Windows 인증을 사용하여 SQL Server에 로그인할 수 있는 권한이 있어야 합니다. 로그인이 다른 권한을 갖거나 데이터베이스의 개체를 소유하기 위해 필요한 요구 사항은 없습니다.
참고 항목
관련 자료
GRANT Service Broker 권한(Transact-SQL)
쿼리 알림 사용 권한