Al momento sei offline in attesa che la connessione Internet venga ristabilita

Come utilizzare l'autenticazione Kerberos in SQL Server

Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell’utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell’utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.

Clicca qui per visualizzare la versione originale in inglese dell’articolo: 319723
Sommario
È possibile utilizzare l'autenticazione Kerberos con Microsoft SQL Server 2000. SQL Server 2000 supporta questa funzionalità come parte di una tipica Microsoft Windows 2000 o Dominio di Microsoft Windows Server 2003 Active Directory installazione. Con Microsoft Windows 2000 Service Pack 3 (SP3) e Windows Server 2003, è possibile attivare Autenticazione Kerberos su cluster di server.

Per ulteriori informazioni su questo aggiunto funzionalità, fare clic sul numero dell'articolo riportato di seguito per visualizzare l'articolo nel Microsoft Knowledge Base:
235529Supporto Kerberos sui cluster di server basato su Windows 2000

Nota. È possibile utilizzare questa funzionalità solo se si esegue Windows 2000 SP3 o Windows Server 2003.

SQL Server 2000 il clustering di failover utilizza anche questa funzionalità. Quando il nome della rete risorsa che dipende da SQL Server è in un cluster basato su Windows 2000 è possibile utilizzare l'autenticazione Kerberos sulla risorsa dopo l'aggiornamento il computer a Windows 2000 SP3 o a Windows Server 2003. Per installare SQL Server clustering di failover, è necessario disporre di Microsoft SQL Server 2000 Enterprise Edition o Developer Edition.

Nota. I concetti e le discussioni in questo articolo si applicano a SQL Server 2000 si applicano anche a SQL Server 2005. Per ulteriori informazioni su questo argomento in SQL Server 2005, vedere i seguenti argomenti nella documentazione in linea di SQL Server 2005:
  • Procedura: attivare l'autenticazione Kerberos tra cui il server virtuale di SQL Server nei cluster di Server
  • Registrazione del nome principale servizio
Per ulteriori informazioni su come verificare che si utilizza l'autenticazione Kerberos in SQL Server 2005, fare clic sul seguente numero di articolo per visualizzare l'articolo della Microsoft Knowledge Base:
909801Come assicurarsi che si utilizza l'autenticazione Kerberos quando si crea una connessione remota a un'istanza di SQL Server 2005
Informazioni
SQL Server è possibile utilizzare l'autenticazione Kerberos per server cluster. È possibile utilizzare l'autenticazione Kerberos con computer autonomi che è in esecuzione SQL Server, oppure a istanze di SQL Server in esecuzione su un server virtuale.

Connettersi a un server che esegue Microsoft Internet Information Services e crea una connessione di Kerberos in SQL Server 2000

In questa sezione viene descritto come connettersi a un server che esegue Microsoft Internet Information Services (IIS) per stabilire una connessione Kerberos un server che esegue SQL Server.

Nota
prima di eseguire la procedura di installazione, scaricare il Kerbtray e l'utilità SetSPN.

Per scaricare l'utilità Kerbtray, visitare il seguente sito Web Microsoft: Con Kerbtray.exe, è facilmente possibile verificare o rimuovere (o entrambi) Ticket Kerberos da qualsiasi computer associati che sono in uso.

Per scaricare l'utilità SetSPN, visitare il seguente sito Web Microsoft sito:

La procedura riportata di seguito viene fornito un esempio di un programma di installazione sequenza in cui si utilizza l'autenticazione Kerberos tramite una pagina IIS per accedere a un server che esegue SQL Server.

Passaggio 1: Configurare il controller di dominio

In un controller di dominio in Active Directory Users and Computers:
  1. Pulsante destro del mouse del computer che si desidera impostare per delega (server di servizi di IIS), quindi fare clic per selezionare Questo trust computer per la delega. Se il computer che esegue SQL Server è quello che sembra essere l'ultimo computer contattato ma il computer è collegato Server, è necessario altresì delega delle autorizzazioni. Se non è l'ultimo computer nella catena, tutti i computer sono gli intermediari devono essere trusted per delega.
  2. Concedere l'autorizzazione di delega per il servizio SQL Server account account utente di dominio. È necessario un account utente di dominio per il cluster (Questo passaggio non è obbligatorio per i computer che sono le installazioni di SQL Server esecuzione di SQL Server che utilizza un account di sistema locale):
    1. Nel Utenti cartella, fare doppio clic su di account utente e quindi fare clic su Proprietà.
    2. Nella finestra di dialogo Proprietà account utente, scegliere il Account scheda.
    3. Nella casella di gruppo Opzioni account, fare clic per selezionare Verrà visualizzata la finestra di dialogo Account è Trusted per delega . Assicurarsi che che il Account è sensibile e non può essere delegato controllo casella è deselezionata per questo account.

      Nota. Il diritto "Account è trusted per delega" è obbligatorio per l'account del servizio SQL Server solo quando si desidera delegare le credenziali dal server SQL di destinazione a un server SQL remoto, ad esempio in uno scenario di doppio hop come query distribuite, le query al server collegato, che utilizzano l'autenticazione di Windows.
    Nota. Questa procedura si applica solo a Windows 2000 Server. Se si utilizza Windows Server 2003, visitare il seguente sito Web Microsoft Developer Network (MSDN):
  3. Utilizzare l'utilità Kerbtray.exe exe per verificare che Kerberos i ticket ricevuti dal controller di dominio e dell'host:
    1. Pulsante destro del mouse sull'icona Kerbtray nella notifica area, quindi fare clic su eliminare i ticket.
    2. Attendere che l'icona di Kerbtray verde passare da verde giallo. Come in questo caso, aprire una finestra del prompt dei comandi ed eseguire questo file comando:
      NET session * /d
      Questo rilascio sessioni esistenti e forzare una nuova sessione stabilire e un ticket Kerberos ricevuto.

Passaggio 2: Configurare il server di servizi IIS

  1. Sostituire i file di Wwwroot del sito Web predefinito con l'esempio file ASP. Per creare i file ASP di esempio, utilizzare il codice fornito in la sezione "ASP test script per il recupero di dati di SQL Server".
  2. Aggiungere il file nella cartella Wwwroot. A tale scopo, utilizzare il codice di esempio nella sezione "ASP Test Script per SQL Server recupero dei dati". Salvare il file come default. ASP.
  3. Riconfigurare il server Web per l'utilizzo di Windows integrata Autenticazione:
    1. Il pulsante destro del server Web predefinito e quindi scegliere il Cartella protezione.
    2. Nella cartella protezione, apportare le modifiche corrette, e Fare clic per deselezionare Accesso anonimo.
    3. Dal prompt dei comandi, eseguire questo comando:
      cscript C:\Inetpub\Adminscripts\adsutil.vbs get w3svc/NTAuthenticationProviders
      Se Negotiate è attivata, viene restituito il seguente:
       NTAuthenticationProviders : (STRING) Negotiate,NTLM
      Per ulteriori informazioni, fare clic sul numero dell'articolo riportato di seguito per visualizzare l'articolo della Microsoft Knowledge Base:
      215383Come configurare IIS per supportare il protocollo Kerberos e il protocollo NTLM per l'autenticazione di rete
    Note
    • È necessario installare Microsoft Data Access (MDAC) 2.6 o versione successiva, in il server di servizi di IIS. Per eseguire questa operazione (e rendere disponibili per gli strumenti testing), installare gli strumenti client di SQL Server 2000 per il server Web. Per installare solo MDAC 2.6 o versione successiva (senza installare gli strumenti client), visitare il seguente sito Web Microsoft:
    • IIS è un sistema comune di livello intermedio. Tuttavia, IIS non è il sistema di livello intermedio solo. Se IIS non è il sistema di livello intermedio nell'ambiente in uso, attenersi alla procedura appropriata per il sistema di livello intermedio.
  4. Verificare che il
    HKLM\SW\MS\MSSQLSERVER\Client\DSQUERY
    valore è presente nel Registro di sistema. Se il valore non è visualizzato, aggiungerla come
    DSQUERY:Reg_SZ:DBNETLIB
    .
  5. Utilizzare l'utilità Kerbtray.exe exe per verificare che Kerberos i ticket ricevuti dal controller di dominio e dell'host:
    1. Pulsante destro del mouse sull'icona di Kerbtray nell'area di notifica e quindi fare clic su Elimina i ticket.
    2. Attendere che l'icona di Kerbtray verde passare da verde giallo. Come in questo caso, aprire una finestra del prompt dei comandi ed eseguire questo file comando:
      NET session * /d
      Questo rilascio sessioni esistenti e forzare una nuova sessione stabilire e un ticket Kerberos ricevuto.

Passaggio 3: Configurare il servizio SQL Server per creare nomi SPN in modo dinamico

A tale scopo, è necessario concedere le seguenti impostazioni di controllo di accesso per l'account del servizio SQL Server nel servizio directory Active Directory:
  • Lettura servicePrincipalName
  • Scrittura servicePrincipalName
Avvisi
  • Se si utilizza lo snap-in modifica di Active Directory Service Interfaces (ADSI), l'utilità LDP o i client LDAP 3 e si modificano erroneamente gli attributi degli oggetti di Active Directory, si verificano problemi gravi. Per risolvere questi problemi, è necessario reinstallare Microsoft Exchange 2000 Server o Microsoft Exchange Server 2003. In alcuni casi, potrebbe essere necessario reinstallare Microsoft Windows 2000 Server o Microsoft Windows Server 2003, quindi reinstallare Exchange 2000 Server o Exchange Server 2003. È possibile garantire che questi problemi possano essere risolti. Modificare questi attributi a proprio rischio.
  • È necessario essere connessi come amministratore di dominio. In alternativa, è necessario chiedere all'amministratore di dominio di concedere le autorizzazioni appropriate e i diritti utente appropriati per l'account di avvio di SQL Server.
Per configurare il servizio SQL Server per creare nomi SPN dinamicamente all'avvio del servizio SQL Server, attenersi alla seguente procedura:
  1. Fare clic Inizio, fare clic su Eseguire, tipo Adsiedit. msc, quindi fare clic su OK.

    Nota. Lo strumento ADSIEdit è incluso negli strumenti di supporto di Windows. Per ottenere gli strumenti di supporto di Windows, visitare il seguente sito Web Microsoft:
  2. Nel snap-in ADSI Edit, espandere [DominioNomeDominio], espandere DC = RootDomainName, espandere CN = Users, fare doppio clic su CN = AccountName , quindi fare clic su Proprietà.

    Note
    • NomeDominio è un segnaposto per il nome del dominio.
    • RootDomainName è un segnaposto per il nome del dominio principale.
    • AccountName è un segnaposto per l'account specificato per avviare il servizio SQL Server.
    • Se si specifica l'account di sistema locale per avviare il servizio SQL Server, AccountName è un segnaposto per l'account utilizzato per accedere a Microsoft Windows.
    • Se si specifica un account utente di dominio per avviare il servizio SQL Server, AccountName è un segnaposto per l'account utente di dominio.
  3. Nel CN = AccountName Proprietà Nella finestra di dialogo, scegliere il Protezione scheda.
  4. Nel Protezione Fare clic su Avanzate.
  5. Nel Impostazioni di protezione avanzate finestra di dialogo verificare che SELF è elencato in Voci di autorizzazione.

    Se SELF non è elencato, fare clic su Aggiungere, quindi aggiungere SELF.
  6. Nella casella di gruppo Voci di autorizzazione, fare clic su SELF, quindi fare clic su Modifica.
  7. Nel Voce di autorizzazione Nella finestra di dialogo, scegliere il Proprietà scheda.
  8. Nel Proprietà Fare clic su Solo l'oggetto nel Applica a elenco, quindi fare clic per selezionare le caselle di controllo per le autorizzazioni seguenti in Autorizzazioni:
    • Lettura servicePrincipalName
    • Scrittura servicePrincipalName
  9. Fare clic OK due volte.

    Nota. Per informazioni su questo processo, contattare il supporto tecnico di Active Directory e citare in questo articolo della Microsoft Knowledge Base.

    Nota. Per utilizzare lo strumento dsacls per determinare se l'account utente disponga dell'autorizzazione di scrittura ServicePrincipalName, utilizzare il comando dsacls . La sintassi è la seguente:
    dsacls <distinguished_Name_of_service_account>
    Se l'account utente disponga dell'autorizzazione di scrittura ServicePrincipalName, verrà visualizzato il seguente output:
    Allow NT Authority\SELF SPECIAL ACCESS for Validated Write to Service principal nameWRITE PROPERTY
    Lo strumento dsacls fa parte degli strumenti di supporto.
  10. Nel CN = AccountName Proprietà Nella finestra di dialogo, fare clic su Editor attributi.
  11. Nella casella di gruppo Attributi, fare clic su servicePrincipalName nel Attributo colonna, quindi fare clic su Modifica.
  12. Nel Editor stringa multivalore finestra di dialogo casella, rimuovere i nomi principali di servizio (SPN) per le istanze di SQL Server che utilizzano l'account del servizio SQL Server.

    Avviso. È necessario eliminare gli SPN solo per le istanze di SQL Server attualmente in uso. Le altre istanze di SQL Server che utilizzano l'account del servizio sarà in grado di rimuovere gli SPN relativi a queste istanze al successivo avvio di queste istanze.
  13. Chiudere lo snap-in ADSI Edit.
Dopo avere eseguito questi passaggi, problemi SPN vengono eliminati anche se si modifica la porta TCP/IP o il nome di dominio per le nuove installazioni di SQL Server 2005 o per le istanze esistenti di SQL Server 2005.

Importante. Si consiglia di non concedere WriteServicePrincipalName diritto all'account del servizio SQL quando sono vere le seguenti condizioni:
  • Esistono più controller di dominio.
  • Cluster di SQL Server.
In questo scenario, il SPN per il SQL Server può essere eliminato a causa della latenza di replica di Active Directory. Ciò potrebbe causare problemi di connettività all'istanza di SQL Server.

Si supponga di avere le seguenti operazioni:
  • Un'istanza virtuale di SQL denominata cluster con due nodi: nodo A e nodo B.
  • Il nodo A è autenticato dal controller di dominio A e nodo B viene autenticato dal controller di dominio B.


Può verificarsi quanto segue:
  1. L'istanza del cluster è attivo nel nodo A e registrato il SPN SQL in un controller di dominio durante l'avvio del backup...
  2. L'istanza di cluster failover al nodo B quando il nodo A viene arrestato normalmente.
  3. L'istanza cluster registrazione annullata proprio nome SPN da un controller di dominio durante il processo di arresto del nodo A.
  4. il SPN viene rimosso da un controller di dominio, ma la modifica non è ancora stata replicata al controller di dominio B.
  5. All'avvio del nodo B, l'istanza cluster tenta di registrare il SPN di SQL con controller di dominio B. Da allora, il SPN esiste ancora il nodo B non viene registrato il SPN.
  6. Dopo alcuni minuti, il controller di dominio A replica l'eliminazione di SPN (dal passaggio 3) a controller di dominio B come parte della replica di Active Directory. Il risultato finale è che non esiste alcun SPN valido per l'istanza SQL nel dominio e si vedano quindi i problemi di connessione all'istanza del cluster.

Nota. Questo problema viene risolto in SQL Server 2012.


Passaggio 4: Configurare i computer client

  1. Per ogni client che si connetterà, verificare che Microsoft Internet Explorer è configurato per utilizzare l'autenticazione di Windows:
    1. In Internet Explorer, nel Strumentimenu, fare clic su Opzioni Internet.
    2. Scegliere il Avanzate scheda.
    3. Nella casella di gruppo Protezione, fare clic per selezionare Attivare l'autenticazione Windows integrata (richiede riavvio), e quindi fare clic su OK.

Passaggio 5: Verificare la configurazione

Per ogni computer in cui è coinvolto:
  1. Accedere al computer e quindi utilizzare Kerbtray.exe per verificare che il computer può ottenere un ticket Kerberos valido dal dominio controller.
  2. Utilizzare Kerbtray.exe per rimuovere tutti i ticket sul computer.
  3. Creare e connettersi alla pagina Web che restituisce il SQL Dati del server.

    Nota. Sostituire SQLSERVERNAME con il nome del il computer che esegue SQL Server:
    • Se vengono restituiti dati, questa pagina viene visualizzato il tipo di autenticazione Negotiatee i dati di SQL Server per il risultato di sp_helpdb la stored procedure che dovrebbe restituire un elenco dei database su il server è in corso la connessione a tramite la.Pagina ASP.
    • Se si dispone di controllo attivato in SQL Server, nel Registro dell'applicazione si noterà che la connessione è "attendibile".

Script di prova ASP per il recupero di dati di SQL Server

Ecco uno script di test ASP per i dati di SQL Server. Se si utilizza questa esempio di codice, assicurarsi di sostituire SQLSERVERNAME con il nome del computer che è esecuzione di 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>					

Come raccogliere un elenco di principio server Active Directory informazioni sul nome

Per raccogliere un elenco di nome principale di Active Directory server (SPN) informazioni, digitare il seguente comando su uno dei controller di dominio dove betaland è il nome di dominio NetBIOS e NewoutputUsers.txt è il nome del file di output che verrà utilizzato per trasferire i risultati. Se non si utilizza un percorso completo, il file. viene inserito nella cartella corrente in cui si esegue la riga di comando. In questo esempio comando Interroga l'intero dominio:
LDIFDE -d "CN = Users, DC =betaland"servicePrincipalName -l -F NewoutputUsers. txt
Questa sintassi consente di creare un file denominato NewoutputUsers.txt che contiene informazioni che sono simile a quello del livello di dominio" sezione di output di NewouputUsers.txt"in questo articolo.

L'output potrebbe Quando si raccolgono per un intero dominio, essere travolgente. Pertanto, per limitare la le informazioni raccolte su un nome utente specifico, utilizzare la sintassi seguente, dove Nome utente è il nome utente e betaland è il dominio in cui si esegue la query:
LDIFDE -d "CN =Nome utenteDC =betaland"servicePrincipalName -l -F NewoutputUsers. txt
Raccolta delle informazioni per un utente specifico riduce notevolmente il dati che è necessario eseguire la ricerca tramite. Se è raccogliere le informazioni per un intero dominio, cercare il nome utente specifico del server in questione. Nel esempio di output, vedere:
  • Voci per i server che non esiste, ma che non erano completamente rimosso da Active Directory.
  • L'utente"Nome utente"è valido Informazioni relative a SPN su dieci server diversi.
Inoltre, è possibile utilizzare il servizio Active Directory Interfacce strumento (ADSI) per correggere le voci di Active Directory che non sono valide.

Avviso. Se si utilizza lo snap-in ADSI Edit, l'utilità LDP o qualsiasi altro Client LDAP versione 3 e si modificano erroneamente gli attributi di Active Gli oggetti directory, è possibile causare seri problemi. Tali problemi possono richiedere reinstallazione di Microsoft Windows 2000 Server, Microsoft Windows Server 2003 Microsoft Exchange 2000 Server, Microsoft Exchange Server 2003 o in entrambe le finestre ed Exchange. Microsoft non garantisce che i problemi che si verificano se si si modificano erroneamente gli attributi degli oggetti possono essere risolti in Active Directory. Modificare Questi attributi a proprio rischio.

Output di livello di dominio di 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
Riferimenti
Per ulteriori informazioni sulla delega degli account di protezione, vedere l'argomento "Delega degli Account di protezione" nella documentazione in linea di SQL Server.

Per ulteriori informazioni, fare clic sul numero dell'articolo riportato di seguito Per visualizzare gli articoli della Microsoft Knowledge Base:
262177Come attivare la registrazione eventi Kerberos
321708 Come utilizzare lo strumento di diagnostica di rete (Netdiag.exe) in Windows 2000
326985 Come risolvere i problemi relativi a Kerberos in IIS
244474 Come forzare Kerberos a utilizzare TCP anziché UDP in Windows Server 2003, Windows XP e Windows 2000

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 319723 - Ultima revisione: 04/07/2013 18:30:00 - Revisione: 2.0

Microsoft SQL Server 2000 Standard Edition, Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Express Edition, Microsoft SQL Server 2005 Workgroup Edition

  • kbinfo kbmt KB319723 KbMtit
Feedback