Compartilhar via


Controle de identidade e acesso (Service Broker)

Aplica-se a:SQL ServerInstância Gerenciada de SQL do Azure

A maioria dos aplicativos Service Broker 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 Service Broker:

  • A autorização remota do Service Broker aplica-se quando um aplicativo do Service Broker remoto conecta-se ao SQL Server e entrega uma mensagem à instância. A entidade de banco de dados especificada para autorização remota deve ter CONNECT permissão no banco de dados que hospeda o serviço iniciador e deve ter SEND permissão para o próprio serviço de iniciação. 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 que uma entidade de banco de dados inicie uma conversa, essa entidade de segurança deve ter RECEIVE permissões na fila para o serviço de iniciação.

  • A entidade de banco de dados que possui o serviço de iniciação deve ter SEND permissões no serviço de destino.

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

  • O usuário especificado como o usuário para um procedimento armazenado de ativação deve ter permissão para executar o procedimento. Frequentemente, o usuário especificado tem as permissões necessárias para executar as instruções no procedimento. No entanto, se o procedimento armazenado em si for definido com uma EXECUTE AS cláusula, as instruções no procedimento armazenado serão executadas com o contexto de segurança definido pelo procedimento armazenado. O SQL Server primeiramente define o contexto de segurança como o usuário especificado para a fila. O 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 Service Broker usa SSPI, a conta de serviço do banco de dados remoto deve ter CONNECT permissão mastere também deve corresponder a um logon. Portanto, a conta que a instância remota do SQL Server remoto executa deve ter permissão para entrar no SQL Server usando a Autenticação do Windows. Não há requisitos para a conexão ter outras permissões nem ter objetos em qualquer banco de dados.