Como utilizar a autenticação Kerberos no SQL Server

Traduções de Artigos Traduções de Artigos
Artigo: 319723 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sumário

Pode utilizar a autenticação Kerberos com o Microsoft SQL Server 2000. SQL Server 2000 suporta esta funcionalidade como parte de um típico Microsoft Windows 2000 ou Domínio do Microsoft Windows Server 2003 Active Directory instalação. Com o Microsoft Windows 2000 Service Pack 3 (SP3) e Windows Server 2003, pode activar Autenticação Kerberos em clusters de servidor.

Para mais informações sobre esta adicionado a funcionalidade, clique no número de artigo seguinte para visualizar o artigo do Base de dados de conhecimento da Microsoft:
235529Suporte de Kerberos em clusters de servidor baseado no Windows 2000

Nota Só pode utilizar esta funcionalidade se estiver a executar o Windows 2000 SP3 ou Windows Server 2003.

SQL Server 2000 também clustering de activação pós-falha utiliza esta funcionalidade. Quando o nome da rede recursos do SQL Server está dependente estiver num cluster baseado no Windows 2000, Pode utilizar a autenticação Kerberos no recurso depois de actualizar o computador para o Windows 2000 SP3 ou para o Windows Server 2003. Para instalar o SQL Server activação pós-falha de clusters, tem de ter o Microsoft SQL Server 2000 Enterprise Edition ou Developer Edition instalado.

Nota Os conceitos e debates neste artigo que se aplicam ao SQL Server 2000 também se aplicam ao SQL Server 2005. Para mais informações sobre este assunto no SQL Server 2005, consulte os seguintes tópicos no SQL Server 2005 Books Online:
  • Como: activar a autenticação Kerberos, incluindo servidores virtuais do servidor SQL em Clusters de servidor
  • Registo do nome Principal de serviço
Para mais informações sobre como certificar-se de que está a utilizar a autenticação Kerberos no SQL Server 2005, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:
909801Como certificar-se de que está a utilizar a autenticação Kerberos quando cria uma ligação remota para uma instância do SQL Server 2005

Mais Informação

SQL Server pode utilizar a autenticação Kerberos para o servidor clusters. Pode utilizar a autenticação Kerberos com computadores autónomos que com o SQL Server ou com instâncias do SQL Server em execução numa servidor virtual.

Ligar a um servidor que está a executar o Microsoft Serviços de informação Internet e criar uma ligação de Kerberos para SQL Server 2000

Esta secção descreve como ligar a um servidor que está a ser executado Microsoft Internet Information Services (IIS) para efectuar uma ligação de Kerberos para um servidor que executa o SQL Server.

Nota
antes de executar o processo de configuração, transferir o Kerbtray e os utilitários SetSPN.

Para transferir o utilitário de Kerbtray, visite o Web site da Microsoft: Com Kerbtray.exe, pode facilmente verificar ou remover (ou ambos) Bilhetes Kerberos a partir de qualquer um dos computadores associados que estão a ser utilizados.

Para transferir o utilitário SetSPN exe, visite o seguinte Web da Microsoft site:
http://www.microsoft.com/downloads/details.aspx?FamilyID=5fd831fd-ab77-46a3-9cfe-ff01d29e5c46&displaylang=en


O procedimento seguinte fornece um exemplo de um programa de configuração sequência em que utiliza a autenticação Kerberos através de uma página IIS para aceder a um servidor que executa o SQL Server.

Passo 1: Configurar o controlador de domínio

Num controlador de domínio, em computadores e utilizadores do Active Directory:
  1. Com o botão direito no computador que pretende definir para delegação (servidor de serviços do IIS) e, em seguida, clique para seleccionar Esta fidedignidade computador fidedigno para delegação. Se o computador que esteja a executar o SQL Server o que parece ser o último computador contactado, mas esse computador tiver uma ligada servidor, deve também concedida a permissão de delegação. Se não for o último todos os computadores que estão a intermediários do computador na cadeia, devem ser fidedigno para delegação.
  2. Conceder permissão de delegação para o serviço SQL Server conta de utilizador de domínio de conta. Tem de ter uma conta de utilizador de domínio para clusters (Este passo não é necessário para computadores que estejam de instalações de SQL Server com o SQL Server que estiver a utilizar uma conta de sistema local):
    1. No Utilizadores pasta, com o botão direito do conta de utilizador e, em seguida, clique Propriedades.
    2. Na caixa de diálogo de propriedades do conta de utilizador, faça clique sobre o Conta separador.
    3. Em Opções de conta, clique para seleccionar o Conta é fidedigno para delegação caixa de verificação. Certifique-se que o Conta é sensível e não pode ser delegada verificação caixa está desmarcada para esta conta.

      Nota O direito 'Conta é fidedigna para delegação' é necessário para a conta de serviço do SQL Server, apenas quando estiver a delegar as credenciais do servidor SQL de destino a um servidor SQL remoto, tal como no cenário de um salto duplo como consultas distribuídas (consultas de um servidor ligado) que utilizam a autenticação do Windows.
    Nota Estes passos aplicam-se apenas ao Windows 2000 Server. Se estiver a utilizar o Windows Server 2003, visite o seguinte Web site da Microsoft Developer Network (MSDN):
    http://technet2.microsoft.com/windowsserver/en/library/bef202b0-c8e9-4999-9af7-f56b991a4fd41033.mspx
  3. Utilize o utilitário Kerbtray.exe para verificar esse Kerberos bilhetes foram recebidos a partir do controlador de domínio e anfitrião:
    1. Botão direito do rato no ícone de Kerbtray na notificação área e, em seguida, clique em Limpar bilhetes.
    2. Aguarde que o ícone verde de Kerbtray para mudaram de verde para amarelo. Logo que esta situação ocorre, abra uma janela de linha de comandos e execute esta comando:
      net session * /d
      Isto irá largar as sessões existentes e forçar uma nova sessão para ser estabelecido e uma permissão Kerberos recebidos.

Passo 2: Configurar o servidor de serviços do IIS

  1. Substituir os ficheiros do Web site Wwwroot predefinidos com a amostra ficheiros. asp. Para criar os ficheiros. asp de exemplo, utilize o código que é fornecido no a secção "Teste de ASP script para obtenção de dados do SQL Server".
  2. Adicione o ficheiro na pasta Wwwroot. Para tal, utilize a código de exemplo na secção "ASP ensaio Script para SQL Server obtenção de dados". Guarde o ficheiro como default. asp.
  3. Reconfigurar o servidor Web para utilizar integrada do Windows Autenticação:
    1. O servidor Web predefinido com o botão direito e, em seguida, clique na Pasta de segurança.
    2. Na pasta de segurança, efectue as alterações correctas, e em seguida, clique para desmarcar acesso anónimo.
    3. A partir de uma linha de comandos, execute este comando:
      obter cscript C:\Inetpub\Adminscripts\adsutil.vbs w3svc/NTAuthenticationProviders
      Se estiver activada a Negociar , é devolvido o seguinte:
       NTAuthenticationProviders : (STRING) Negotiate,NTLM
      Para mais informações, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:
      215383Como configurar o IIS para suportar o protocolo Kerberos e o protocolo NTLM para autenticação de rede
    Notas
    • Tem de instalar o Microsoft Data Access (MDAC) 2.6 ou posterior, em o servidor de serviços do IIS. Para o fazer (e para disponibilizar as ferramentas para o ensaio), instale as ferramentas de cliente do SQL Server 2000 para o servidor Web. Para instalar apenas o MDAC 2.6 ou posterior (sem instalar as ferramentas de cliente), visite o seguinte Web site da Microsoft:
      http://msdn2.microsoft.com/en-us/data/aa937730.aspx
    • O IIS é um sistema comum de camada média. No entanto, o IIS não é o sistema só camada média. Se o IIS não é o sistema de camada média no seu ambiente, siga os passos apropriados para o sistema de camada média.
  4. Verifique se o
    HKLM\SW\MS\MSSQLSERVER\Client\DSQUERY
    valor existir no registo. Se o valor não for apresentado, adicioná-lo como
    DSQUERY:Reg_SZ:DBNETLIB
    .
  5. Utilize o utilitário Kerbtray.exe para verificar esse Kerberos bilhetes foram recebidos a partir do controlador de domínio e anfitrião:
    1. Botão direito do rato no ícone de Kerbtray na área de notificação, e, em seguida, clique em Limpar bilhetes.
    2. Aguarde que o ícone verde de Kerbtray para mudaram de verde para amarelo. Logo que esta situação ocorre, abra uma janela de linha de comandos e execute esta comando:
      net session * /d
      Isto irá largar as sessões existentes e forçar uma nova sessão para ser estabelecido e uma permissão Kerberos recebidos.

Passo 3: Configurar o serviço SQL Server para criar dinamicamente SPN

Para efectuar este procedimento, tem de conceder as seguintes definições de controlo de acesso para a conta de serviço do SQL Server no serviço de directório do Active Directory:
  • Ler servicePrincipalName
  • Escrever servicePrincipalName
Avisos
  • Se utilizar o snap-in do Active Directory Service Interfaces (ADSI) edição, o utilitário LDP ou os clientes LDAP 3 e modificar incorrectamente os atributos de objectos do Active Directory, ocorrer problemas graves. Para resolver estes problemas, poderá ter de reinstalar o Microsoft Exchange 2000 Server ou Microsoft Exchange Server 2003. Em alguns casos, poderá ter de reinstalar o Microsoft Windows 2000 Server ou Microsoft Windows Server 2003 e, em seguida, reinstalar o Microsoft Exchange 2000 Server ou Exchange Server 2003. Não podemos garantir que estes problemas possam ser resolvidos. Modificar estes atributos na sua conta e risco.
  • Tem de ter sessão iniciada como administrador de domínio. Em alternativa, tem de pedir ao administrador de domínio para conceder as permissões adequadas e dos direitos de utilizador apropriados para a conta de início do SQL Server.
Para configurar o serviço SQL Server para criar dinamicamente SPNs quando inicia o serviço SQL Server, siga estes passos:
  1. Clique em Iniciar, clique em Executar, tipo Adsiedit. msce, em seguida, clique em OK.

    Nota A ferramenta ADSIEdit está incluída nas ferramentas de suporte do Windows. Para obter as ferramentas de suporte do Windows, visite o seguinte Web site da Microsoft:
    http://www.microsoft.com/downloads/details.aspx?FamilyId=6EC50B78-8BE1-4E81-B3BE-4E7AC4F0912D&displaylang=en
  2. No snap-in ADSI Edit, expanda Domínio [Nome de domínio], expanda DC = RootDomainName, expanda CN = utilizadores, com o botão direito CN = AccountName e, em seguida, clique em Propriedades.

    Notas
    • Nome de domínio é um marcador de posição para o nome do domínio.
    • RootDomainName é um marcador de posição para o nome do domínio raiz.
    • AccountName é um marcador de posição para a conta que especificar para iniciar o serviço SQL Server.
    • Se especificar a conta de sistema Local para iniciar o serviço SQL Server, AccountName é um marcador de posição para a conta que utilizar para iniciar sessão no Microsoft Windows.
    • Se especificar uma conta de utilizador de domínio para iniciar o serviço SQL Server, AccountName é um marcador de posição para a conta de utilizador de domínio.
  3. No CN = AccountName Propriedades caixa de diálogo, faça clique sobre o Segurança separador.
  4. Sobre o Segurança Clique em Avançadas.
  5. No Definições avançadas de segurança diálogo caixa, certifique-se de que SELF está listado em Entradas de permissão.

    IF SELF Não é listado, clique em Adicionare, em seguida, adicionar SELF.
  6. Em Entradas de permissão, clique em SELFe, em seguida, clique em Editar.
  7. No Entrada de permissão caixa de diálogo, faça clique sobre o Propriedades separador.
  8. Sobre o Propriedades Clique em Este objecto apenas no Aplicar em lista e, em seguida, clique para seleccionar as caixas de verificação para as seguintes permissões em Permissões:
    • Ler servicePrincipalName
    • Escrever servicePrincipalName
  9. Clique em OK duas vezes.

    Nota Para obter ajuda com este processo, contacte o suporte de produto do Active Directory e mencionar este artigo da Base de dados de conhecimento da Microsoft.

    Nota Para utilizar a ferramenta dsacls para determinar se a conta automática tem a permissão de escrita ServicePrincipalName, utilize o comando dsacls . Segue-se a sintaxe:
    dsacls <distinguished_Name_of_service_account>
    Se a conta automática tem a permissão de escrita ServicePrincipalName, verá o seguinte resultado:
    Allow NT Authority\SELF SPECIAL ACCESS for Validated Write to Service principal name
    WRITE PROPERTY
    A ferramenta de dsacls faz parte das ferramentas de suporte.
  10. No CN = AccountName Propriedades caixa de diálogo, clique em Editor de atributo.
  11. Em Atributos, clique em servicePrincipalName no Atributo coluna e, em seguida, clique Editar.
  12. No Editor de cadeias com valores múltiplos diálogo caixa, remova os nomes do princípio de serviço (SPN) para as instâncias do SQL Server que utilizam esta conta de serviço do SQL Server.

    Aviso Só deve eliminar o SPN para as instâncias do SQL Server que estão actualmente a trabalhar. Outras instâncias do SQL Server que utilizam esta conta de serviço irão conseguir remover o SPN que está relacionados com estas instâncias da próxima vez que iniciar dessas ocorrências.
  13. Saia do snap-in ADSI Edit.
Depois de seguir estes passos, o SPN problemas também são eliminados se alterar a porta de TCP/IP ou o nome de domínio para novas instalações do SQL Server 2005 ou para instâncias existentes do SQL Server 2005.

Importante Recomendamos que não conceda WriteServicePrincipalName direita para a conta do serviço SQL quando se verificam as seguintes condições:
  • Existem vários controladores de domínio.
  • SQL Server está incluído no cluster.
Neste cenário, o SPN para o SQL Server pode ser eliminado devido a latência na replicação do Active Directory. Isto pode causar problemas de conectividade a instância do SQL Server.

Suponha que tem o seguinte:
  • Uma instância do SQL virtual denominada Sqlcluster com dois nós: nó A e o nó B.
  • Nó A é autenticado pelo controlador de domínio A e B de nó é autenticado pelo controlador de domínio B.


Poderá ocorrer o seguinte:
  1. A instância de Sqlcluster está activa no nó A e registado o SPN de SQL no controlador de domínio A durante o início até..
  2. Falha a instância de Sqlcluster através do nó B quando o nó A está encerrado normalmente.
  3. A instância de Sqlcluster registo anulado o SPN do controlador de domínio A durante o processo de encerramento no nó A.
  4. O SPN é removido do controlador de domínio A, mas a alteração ainda não foi replicada para o controlador de domínio B.
  5. Quando iniciar no nó B, a instância de Sqlcluster tenta registar o SPN de SQL com o controlador de domínio B. Desde então, o SPN continua a existir nó B não regista o SPN.
  6. Após algum tempo, o controlador de domínio A replica a eliminação de SPN (do passo 3) para o controlador de domínio B como parte da replicação do Active Directory. O resultado final é que não existe nenhum SPN válido para a instância de SQL no domínio e, portanto, ver problemas de ligação à instância de Sqlcluster.

Nota Este problema foi corrigido no SQL Server 2012.


Passo 4: Configurar os computadores cliente

  1. Para cada cliente que irá estabelecer ligação, certifique-se que o Microsoft Internet Explorer está configurado para utilizar a autenticação do Windows:
    1. No Internet Explorer, sobre o Ferramentasmenu, clique em Opções da Internet.
    2. Faça clique sobre o Avançadas separador.
    3. Em Segurança, clique para seleccionar Activar autenticação integrada do Windows (requer reinicialização), e, em seguida, clique em OK.

Passo 5: Testar a configuração

Para cada computador que esteja envolvido:
  1. Inicie sessão computador e, em seguida, utilize Kerbtray.exe para verificar que o computador pode obter uma permissão Kerberos válida do domínio controlador.
  2. Utilize Kerbtray.exe para remover todas as permissões sobre a computador.
  3. Crie e ligar a página Web que devolve o SQL Dados do servidor.

    Nota Substituir NOME_SERVIDOR_SQL com o nome do o computador que esteja a executar o SQL Server:
    • Se os dados são devolvidos, esta página apresenta a tipo de autenticação Negotiatee os dados do SQL Server para o resultado da sp_helpdb armazenados procedimento que deverá devolver uma lista das bases de dados no o servidor que está a ser a ligar através do.Página ASP.
    • Se tiver a auditoria activada no SQL Server, para além do Registo de aplicações, verá que a ligação é "fidedigna".

Script de teste ASP para obtenção de dados do SQL Server

Aqui está um script de teste do ASP para dados do SQL Server. Se utilizar esta exemplo de código, certifique-se de que substitui NOME_SERVIDOR_SQL com o nome do computador que está com o SQL Server.
<%@ Language=VBScript %>
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
</HEAD>
<BODY>
<%="'auth_user' is" & request.servervariables("auth_user")%>
<P>
<%="'auth_type' is" & request.servervariables("auth_type")%>
<P>
Connections string is " Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=pubs;Data Source=SQLSERVERNAME 
<P>
<%
	set rs = Server.CreateObject("ADODB.Recordset")
	set cn = Server.CreateObject("ADODB.Connection")
	cn.Open "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=pubs;Data Source=SQLSERVERNAME"
	rs.open "MASTER..sp_helpdb",cn
	Response.Write cstr(rs.Fields.Count) +"<BR>"
	while not rs.EOF
		Response.Write cstr(rs(0))+"<BR>"
		rs.MoveNext
	wend
	rs.Close
	cn.Close
	set rs = nothing ' Frees memory reserved by the recordset.
	set cn = nothing ' Frees memory reserved by the connection.
%>
</BODY>
</HTML>
					

Como reunir uma lista de princípio de servidor do Active Directory informações de nome

Para reunir uma lista de nome principal do servidor do Active Directory (SPN) informações, escreva o seguinte comando dos controladores de domínio, em que betaland é o nome de domínio NetBIOS e NewoutputUsers.txt é o nome do ficheiro de saída que irá utilizar para os resultados da porta. Se não utilizar um caminho completo, o ficheiro. é colocado na pasta actual em que executou a linha de comandos. Este exemplo comando consulta o domínio inteiro:
ldifde -d "CN = utilizadores, DC =betaland"-l servicePrincipalName -F NewoutputUsers. txt
Esta sintaxe cria um ficheiro denominado NewoutputUsers.txt que contém informações semelhantes à saída do nível de domínio" secção de NewouputUsers.txt de resultado"deste artigo.

Este resultado pode ser confuso quando reunir para todo um domínio. Por conseguinte, para limitar a as informações obtidas para um nome de utilizador específica, utilize a seguinte sintaxe, onde Nome de utilizador é o nome de utilizador e betaland é o domínio que está a consultar:
ldifde -d "CN =Nome de utilizadorDC =betaland"-l servicePrincipalName -F NewoutputUsers. txt
Recolha das informações para um utilizador específico reduz significativamente o dados que deve procurar. Se reunir as informações para um todo domínio, procure o nome de utilizador específico do servidor em questão. No amostra de saída, consulte:
  • Entradas para os servidores que já não existir, mas que não foram completamente removido do Active Directory.
  • O utilizador"Nome de utilizador"tem válido Informações de SPN sobre dez servidores diferentes.
Além disso, pode utilizar o serviço do Active Directory Interfaces ferramenta (ADSI) para corrigir as entradas do Active Directory que não são válidas.

Aviso Se utilizar o snap-in ADSI Edit, o utilitário LDP ou qualquer outro Cliente LDAP versão 3 e modificar incorrectamente os atributos do Active Directory Objectos de directório, pode provocar problemas graves. Estes problemas poderão requerer a reinstalação do Microsoft Windows 2000 Server, Microsoft Windows Server 2003, Microsoft Exchange 2000 Server, Microsoft Exchange Server 2003 ou ambas as janelas e Exchange. A Microsoft não garante que os problemas que ocorrem se que modificar incorrectamente os atributos de objectos que possam ser resolvidos de Active Directory. Modificar Estes atributos na sua conta e risco.

Produção de nível de domínio do NewouputUsers.txt

	dn: CN=User Name,CN=Users,DC=betaland
	changetype: add
	servicePrincipalName: MSSQLSvc/CLUSTERDEFAULT.betaland:1257
	servicePrincipalName: MSSQLSvc/INST3.betaland:3616
	servicePrincipalName: MSSQLSvc/INST2.betaland:3490
	servicePrincipalName: MSSQLSvc/SQLMAN.betaland:1433
	servicePrincipalName: MSSQLSvc/VSS1.betaland:1433
	servicePrincipalName: MSSQLSvc/INST1.betaland:2536
	servicePrincipalName: MSSQLSvc/INST4.betaland:3967
	servicePrincipalName: MSSQLSvc/SQLVIRTUAL1.betaland:1434
	servicePrincipalName: MSSQLSvc/SQLVIRTUAL.betaland:1433
	servicePrincipalName: MSSQLSvc/SQLBUSTER.betaland:1315

Referências

Para mais informações sobre delegação de conta de segurança, consulte o tópico "Segurança conta delegação" no SQL Server Books Online.

Para mais informações, clique nos seguintes números de artigo para visualizar os artigos na Microsoft Knowledge Base:
262177Como activar o registo de eventos de Kerberos
321708 Como utilizar a ferramenta de diagnóstico de rede (Netdiag.exe) no Windows 2000
326985 Como resolver problemas relacionados com Kerberos no IIS
244474 Como forçar o Kerberos a utilizar TCP em vez de UDP no Windows Server 2003, no Windows XP e no Windows 2000

Propriedades

Artigo: 319723 - Última revisão: 7 de abril de 2013 - Revisão: 2.0
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2000 Standard Edition nas seguintes plataformas
    • Microsoft Windows Server 2003 Enterprise Edition
    • Microsoft Windows Server 2003 Datacenter Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL 2005 Server Workgroup
Palavras-chave: 
kbinfo kbmt KB319723 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 319723

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com