Artigo: 319723 - Última revisão: terça-feira, 11 de Agosto de 2009 - Revisão: 22.0

Como utilizar a autenticação Kerberos no SQL Server

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.

Nesta página

Expandir tudo | Reduzir tudo

Sumário

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

Para obter mais informações sobre esta funcionalidade adicionada, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
235529  (http://support.microsoft.com/kb/235529/ ) Suportar 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 de rede é recurso que está dependente do SQL Server 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 Microsoft SQL Server 2000 Enterprise Edition ou o 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 em clusters de servidor do SQL Server
  • Registo de nome principal de serviço
Para obter mais informações sobre como se certificar de que está a utilizar a autenticação Kerberos no SQL Server 2005, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
909801  (http://support.microsoft.com/kb/909801/ ) Como se certificar de que está a utilizar a autenticação Kerberos quando cria uma ligação remota a uma instância do SQL Server 2005

Mais Informação

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

Ligar a um servidor com o Microsoft Internet Information Services e estabelecer uma ligação de Kerberos para o SQL Server 2000

Esta secção descreve como ligar a um servidor que está a executar o Microsoft (IIS) para estabelecer uma ligação Kerberos para um servidor que está a executar o SQL Server.

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

Para transferir o utilitário Kerbtray, visite o seguinte Web site da Microsoft:
http://www.microsoft.com/downloads/details.aspx?FamilyID=4e3a58be-29f6-49f6-85be-e866af8e7a88&displaylang=en (http://www.microsoft.com/downloads/details.aspx?FamilyID=4e3a58be-29f6-49f6-85be-e866af8e7a88&displaylang=en)
Com Kerbtray.exe, pode facilmente verificar ou remover (ou ambos) bilhetes Kerberos de qualquer um dos computadores associados que estão a ser utilizados.

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


O procedimento seguinte fornece um exemplo de uma sequência de configuração no qual utilizar a autenticação Kerberos através de uma página IIS para aceder a um servidor que esteja a executar o SQL Server.

Passo 1: Configurar o controlador de domínio

Num controlador de domínio, em computadores e utilizadores do Active Directory:
  1. Clique com o botão direito no computador que pretende configurar para delegação (servidor de serviços do IIS) e, em seguida, clique para seleccionar Confiar no computador para delegação . Se o computador que esteja a executar o SQL Server é o que parece ser o último computador contactado mas que o computador tiver um servidor ligado, tem também conceder permissões de delegação. Se não for o último computador na cadeia, todos os computadores que estejam intermediários tem de ser fidedignos para delegação.
  2. Conceder permissão de delegação para a conta de utilizador de domínio de conta de serviço do SQL Server. Tem de ter uma conta de utilizador domínio para instalações do SQL Server em cluster (este passo não é necessário para computadores com o SQL Server que estão a utilizar uma conta de sistema local):
    1. Na pasta utilizadores , clique com o botão direito do rato a conta de utilizador e, em seguida, clique em Propriedades .
    2. Na caixa de diálogo de propriedades do conta de utilizador, clique no separador conta .
    3. Em Opções de conta , clique para seleccionar o conta é fidedigno para delegação caixa de verificação. Certifique-se que a caixa de verificação conta é sensível e não pode ser delegada está desmarcada para esta conta.

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

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

  1. Substitua os ficheiros de Web site Wwwroot predefinidos os ficheiros de ASP de exemplo. Para criar os ficheiros de ASP de exemplo, utilize o código que é fornecido na secção "ASP testar script para obtenção de dados do SQL Server".
  2. Adicione o ficheiro para a pasta Wwwroot. Para o fazer, utilize o código de exemplo na secção "ASP teste scripts para SQL Server obtenção de dados". Guarde o ficheiro como default.asp.
  3. Reconfigurar o servidor Web para utilizar integrada do Windows apenas autenticação:
    1. Clique com o botão direito do rato no servidor Web, predefinido 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 o acesso anónimo .
    3. A partir de uma linha de comandos, execute este comando:
      cscript C:\Inetpub\Adminscripts\adsutil.vbs get w3svc/NTAuthenticationProviders
      Se Negociar estiver activada, é devolvido o seguinte:
       NTAuthenticationProviders : (STRING) Negotiate,NTLM
      Para obter mais informações, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
      215383  (http://support.microsoft.com/kb/215383/ ) Como configurar o IIS para suportar o protocolo Kerberos e o protocolo NTLM para autenticação de rede
    notas
    • Microsoft Data Access (MDAC) 2.6 ou posterior, tem de instalar no servidor de serviços do IIS. Para o fazer (e para disponibilizar as ferramentas para testes), instalar as ferramentas de SQL Server 2000 de cliente 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 (http://msdn2.microsoft.com/en-us/data/aa937730.aspx)
    • O IIS é um sistema de camada comuns. No entanto, o IIS não é o sistema só camada. Se o IIS não for o sistema de camada no seu ambiente, siga os passos adequados para o sistema de camada.
  4. Certifique-se de que o
    HKLM\SW\MS\MSSQLSERVER\Client\DSQUERY
    valor estiver presente no registo. Se o valor não for apresentado, adicione-o como
    DSQUERY:Reg_SZ:DBNETLIB
    .
  5. Utilizar o utilitário Kerbtray.exe para verificar esse Kerberos permissões foram recebidas a partir do controlador de domínio e anfitrião:
    1. Clique com o botão direito do ícone do Kerbtray na área de notificação e, em seguida, clique em remover permissões .
    2. Aguarde que o ícone Kerbtray verde mudaram de verde para amarelo. Assim que esta situação ocorre, abra uma janela de linha de comandos e execute este comando:
      net session * /d
      Isto irá largar as sessões existentes e forçar uma nova sessão sejam estabelecidas 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 Editar ADSI (Active Directory Service Interfaces), 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 reinstalação do Microsoft Exchange 2000 Server ou Microsoft Exchange Server 2003. Em alguns casos, poderá ter de reinstalação do Microsoft Windows 2000 Server ou Microsoft Windows Server 2003 e reinstalar o Exchange 2000 Server ou Exchange Server 2003. Microsoft não garante que estes problemas possam ser resolvidos. Modificar estes atributos da responsabilidade do utilizador.
  • Tem de ser iniciado sessão como um administrador de domínio. Em alternativa, tem pergunte ao administrador domínio para conceder as permissões adequadas e direitos de utilizador adequados para a conta de arranque do SQL Server.
Para configurar o serviço SQL Server para criar dinamicamente SPN quando o serviço SQL Server é iniciado, siga estes passos:
  1. Clique em Iniciar , clique em Executar , escreva adsiedit.msc e clique em OK .

    Nota O ADSIEdit ferramenta 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 (http://www.microsoft.com/downloads/details.aspx?familyid=6EC50B78-8BE1-4E81-B3BE-4E7AC4F0912D&displaylang=en)
  2. No snap-in ADSI Edit, expanda o domínio [DomainName] , expanda DC = RootDomainName, expanda CN = utilizadores , clique com o botão direito do rato CN = AccountName e, em seguida, clique em Propriedades .

    notas
    • DomainNameé um marcador para o nome do domínio.
    • RootDomainNameé um marcador para o nome do domínio raiz.
    • AccountNameé um marcador para a conta que especificar para iniciar o serviço SQL Server.
    • Se especificar a conta sistema local para iniciar o serviço SQL Server, o AccountName é um marcador de posição para a conta que utiliza para iniciar sessão Microsoft Windows.
    • Se especificar uma conta de utilizador domínio para iniciar o serviço SQL Server, o AccountName é um marcador de posição para a conta de utilizador de domínio.
  3. No CN = AccountName propriedades diálogo, clique no separador segurança .
  4. No separador segurança , clique em Avançadas .
  5. Na caixa de diálogo Definições avançadas de segurança , certifique-se que SELF é listado em entradas de permissões .

    Se SELF não estiver listado, clique em Adicionar e, em seguida, adicione SELF .
  6. Em entradas de permissões , clique em SELF e, em seguida, clique em Editar .
  7. Na caixa de diálogo Entrada de permissão , clique no separador Propriedades .
  8. No separador Propriedades , clique em apenas este objecto na lista Aplicar em e, em seguida, clique para seleccionar as caixas de verificação as seguintes permissões em permissões :
    • Ler servicePrincipalName
    • escrever servicePrincipalName
  9. Clique duas vezes em OK .

    Nota Para obter ajuda com este processo, contacte o suporte de produto do Active Directory e mencionar este artigo 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
    dsacls <distinguished_Name_of_service_account>
    se a conta automática tiver a permissão de escrita ServicePrincipalName, consulte o seguinte resultado:
    Allow NT Authority\SELF SPECIAL ACCESS for Validated Write to Service principal name
    WRITE PROPERTY
    a ferramenta dsacls faz parte das ferramentas de suporte.
  10. No CN = AccountName propriedades diálogo caixa, clique em Editor de atributos .
  11. Em atributos , clique em servicePrincipalName na coluna atributo e, em seguida, clique em Editar .
  12. Na caixa de diálogo Editor de cadeias Multi-valued , remova os nomes de princípio de serviço (SPN) para as instâncias do SQL Server que utilizem esta conta de serviço do SQL Server.

    aviso Só deve eliminar os SPN para as instâncias do SQL Server está a trabalhar. Outras instâncias do SQL Server que utilizem esta conta de serviço não conseguirá remover os SPN estão relacionadas com estas instâncias da próxima vez que iniciar destes casos.
  13. Saia do snap-in ADSI Edit.
Depois de seguir estes passos, problemas SPN 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.

Passo 4: Configurar os computadores cliente

  1. Para cada cliente que irá estabelecer ligação, verifique se o Microsoft Internet Explorer está configurado para utilizar a autenticação do Windows:
    1. No Internet Explorer, as Ferramentas de menu, clique em Opções da Internet .
    2. Clique no separador Avançadas .
    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 no computador e, em seguida, utilize Kerbtray.exe para verificar que o computador pode ser obtidos uma permissão Kerberos válida o controlador de domínio.
  2. Utilize Kerbtray.exe para remover todas as permissões no computador.
  3. Criar e ligar à página Web que devolve o SQL Server dados.

    Nota Substitua SQLSERVERNAME com o nome do computador que está a executar o SQL Server:
    • Se os dados são devolvidos, esta página apresenta o tipo de autenticação Negotiate e os dados do SQL Server para o resultado de sp_helpdb armazenados procedimento que deverá devolver uma lista das bases de dados no servidor que está a ser ligar através da página .asp.
    • Se tiver a auditoria activada no SQL Server, no registo de aplicações verá que a ligação é "fidedigna".

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

Segue-se um script de teste ASP para dados do SQL Server. Se utilizar este exemplo de código, certifique-se de que substituir SQLSERVERNAME com o nome do computador que está a executar 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 <B>" Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=pubs;Data Source=SQLSERVERNAME </B>
<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 informações de nome de princípio de servidor do Active Directory

Para obter uma lista de informações de nome principal (SPN) do servidor do Active Directory, escreva o seguinte comando dos controladores de domínio, onde betaland é o nome de domínio de 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 comando de exemplo consultas domínio completo:
LDIFDE -d "CN = utilizadores, DC = betaland" servicePrincipalName -l -F NewoutputUsers .txt
esta sintaxe cria um ficheiro denominado NewoutputUsers.txt que contém informações semelhantes à saída na secção "Domínio nível saída NewouputUsers.txt" deste artigo.

Este resultado pode ser confuso quando reunir para um domínio inteiro. Por conseguinte, para limitar as informações recolhidas para um nome de utilizador específica, utilize a seguinte sintaxe, onde User Name é o nome de utilizador e betaland é o domínio que está a consultar:
ldifde -d "CN = User Name, DC = betaland" servicePrincipalName -l -F NewoutputUsers .txt
Reunir as informações para um utilizador específico bastante reduz os dados que deve procurar. Se reunir informações de um domínio completo, procure o nome de utilizador específico do servidor em questão. No exemplo de saída, verá:
  • Entradas para os servidores que já não existir, mas que não foram completamente removido do Active Directory.
  • O utilizador "User Name" tem informações válidas de SPN sobre dez servidores diferentes.
Além disso, pode utilizar o Active Directory Service Interfaces (ADSI) ferramenta para corrigir movimentos de Active Directory que não são válidos.

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 de objectos do Active Directory, poderá provocar problemas graves. Estes problemas poderão requerer a reinstalação do Microsoft Windows 2000 Server, Microsoft Windows Server 2003, Microsoft Exchange 2000 Server, Exchange Server 2003, ou o Windows e Exchange. Microsoft não garante que problemas que ocorrem se modificar incorrectamente os atributos de objecto do Active Directory podem ser resolvidos. Modificar estes atributos da responsabilidade do utilizador.

Saída de nível de domínio de 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 obter mais informações, clique números de artigo que se seguem para visualizar os artigos na base de dados de conhecimento da Microsoft:
262177  (http://support.microsoft.com/kb/262177/ ) Como activar o registo de eventos de Kerberos
321708  (http://support.microsoft.com/kb/321708/ ) Como utilizar a ferramenta de diagnóstico de rede (Netdiag.exe) no Windows 2000
326985  (http://support.microsoft.com/kb/326985/ ) Como resolver problemas relacionados com Kerberos no IIS
244474  (http://support.microsoft.com/kb/244474/ ) Como forçar o Kerberos a utilizar TCP em vez de UDP no Windows Server 2003, no Windows XP e no Windows 2000

A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2000 Standard Edition nas seguintes plataformas
    • Microsoft Windows 2000 Advanced Server SP3
    • Microsoft Windows 2000 Service Pack 3
    • 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: 
kbmt kbinfo KB319723 KbMtpt
Tradução automáticaTraduçã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  (http://support.microsoft.com/kb/319723/en-us/ )