Configurando servidores vinculados para delegação

O SQL Server e o Windows podem ser configurados para permitir que um cliente conectado a uma instância do SQL Server se conecte a outra instância do SQL Server encaminhando as credenciais de um usuário autenticado do Windows. Isso é conhecido como delegação. Sob delegação, a instância do SQL Server à qual um usuário do Windows se conectou usando autenticação do Windows representa esse usuário ao se comunicar com outra instância. A delegação de conta de segurança é necessária para consultas distribuídas quando um mapeamento automático é usado para um logon específico em um determinado servidor vinculado.

Requisitos de delegação

Para ilustrar os requisitos para delegação, considere o seguinte cenário: um usuário efetua logon em um computador cliente que se conecta a um servidor que executa uma instância do SQL Server, SQLSERVER1. O usuário deseja executar uma consulta distribuída em um banco de dados em um servidor vinculado, SQLSERVER2. Este cenário, no qual um computador se conecta a outro para depois se conectar a um terceiro, é chamado de salto duplo.

ObservaçãoObservação

Um servidor vinculado deve ser configurado para delegação mesmo quando um aplicativo cliente, incluindo o SQL Server Management Studio, que estabelece uma conexão com um servidor, está no mesmo computador da instância do SQL Server que está sendo consultada.

Requisitos do cliente

  • O logon autenticado do usuário do Windows deve ter permissões de acesso para SQLSERVER1 e SQLSERVER2

  • A propriedade Active Directory do usuário, A conta é sensível e não pode ser delegada, não deve ser selecionada.

  • O computador cliente deve estar usando a conectividade de rede TCP/IP ou pipes nomeados.

Requisitos do servidor primário ou intermediário (SQLSERVER1)

  • O servidor deve ter um SPN registrado pelo administrador de domínio.

  • Na conta na qual o SQL Server está sendo executado deve ser confiável para delegação.

  • O servidor deve estar usando a conectividade de rede TCP/IP ou pipes nomeados.

  • O segundo servidor, SQLSERVER2, deve ser adicionado como um servidor vinculado. Isso pode ser feito executando o procedimento armazenado sp_addlinkedserver. Por exemplo:

    EXEC sp_addlinkedserver 'SQLSERVER2', N'SQL Server'
    
  • Os logons de servidor vinculado devem ser configurados para mapeamento automático. Isso pode ser feito executando o procedimento armazenado sp_addlinkedsrvlogin. Por exemplo:

    EXEC sp_addlinkedsrvlogin 'SQLSERVER2', 'true'
    

Requisitos do segundo servidor (SQLSERVER2)

  • Se estiver usando a conectividade de rede TCP/IP, o servidor deverá ter um SPN registrado pelo administrador de domínio.

  • O servidor deve estar usando a conectividade de rede TCP/IP ou pipes nomeados.