Controle de identidade e acesso (Service Broker)

A maioria dos aplicativos Agente de Serviços que envolvem mais de uma instância são executados no contexto de segurança de um principal de banco de dados criado especificamente para o aplicativo. Esses principais de banco de dados devem ter as permissões mínimas necessárias para realizar as tarefas que o aplicativo executa.

As considerações a seguir aplicam-se a principais de banco de dados criados para aplicativos Agente de Serviços:

  • A autorização remota do Agente de Serviços aplica-se quando um aplicativo Agente de Serviços remoto conecta-se a SQL Server e entrega uma mensagem à instância. O principal do banco de dados especificado para a autorização remota deve ter a permissão CONNECT no banco de dados que hospeda o serviço sendo iniciado e deve ter a permissão SEND para o serviço sendo iniciado. O usuário deve possuir o certificado usado para autenticação. Não há requisitos para que o usuário possua outros objetos, que tenha outras permissões ou seja capaz de efetuar logon em qualquer outro mecanismo.

  • Para um principal de banco de dados iniciar uma conversação, o principal deve ter permissões RECEIVE na fila para o serviço sendo iniciado.

  • O principal de banco de dados que possui o serviço sendo iniciado deve ter permissões SEND para o serviço pretendido.

  • Para que um principal de banco de dados envie mensagens a um serviço, esse principal que ter permissões SEND para o serviço. Para serviços hospedados em uma instância diferente, a segurança de diálogo do Agente de Serviços determina o principal do banco de dados na instância remota. Para obter mais informações, consulte Segurança de diálogo do Service Broker. Observe que o Agente de Serviços não considera a associação em funções do Windows ao verificar permissões SEND.

  • O usuário especificado como o usuário para um procedimento armazenado de ativação deve ter permissão para executar o procedimento. Freqüentemente, o usuário especificado tem as permissões necessárias para executar as instruções no procedimento. Observe, entretanto, que se o próprio procedimento armazenado for definido como uma cláusula EXECUTE AS, as instruções no procedimento armazenado são executadas com o contexto de segurança definido pelo procedimento armazenado. SQL Server primeiramente define o contexto de segurança como o usuário especificado para a fila. SQL Server então executa o procedimento armazenado e este altera o contexto de segurança para o usuário especificado para o procedimento.

  • Quando a segurança de transporte do Agente de Serviços usa SSPI, a conta de serviço para o banco de dados remoto deve ter a permissão CONNECT em mestre e deve também corresponder ao logon. Portanto, a conta que a instância remota SQL Server executa deve ter a permissão de logon em SQL Server usando a Autenticação do Windows. Não há requisitos para o logon ter outras permissões ou possuir objetos em qualquer banco de dados.