MSSQLSERVER_18456
Si applica a: SQL Server
Dettagli
Attributo | valore |
---|---|
Nome prodotto | SQL Server |
ID evento | 18456 |
Origine evento | MSSQLSERVER |
Componente | SQLEngine |
Nome simbolico | LOGON_FAILED |
Testo del messaggio | Accesso non riuscito per l'utente '%.*ls'.%.*ls |
Spiegazione
Questo messaggio di errore viene visualizzato quando un tentativo di connessione viene rifiutato a causa di un errore di autenticazione. Gli account di accesso utente possono avere esito negativo per molti motivi, ad esempio credenziali non valide, scadenza password e abilitazione della modalità di autenticazione errata. In molti casi, i codici di errore includono descrizioni.
Azione utente
Gli esempi seguenti sono alcuni degli errori di accesso comuni. Selezionare l'errore esatto riscontrato per risolvere il problema:
Accesso non riuscito per l'utente '<username>' o accesso non riuscito per l'utente '<domain>\<username>'
Se il nome di dominio non è specificato, il problema è un tentativo di accesso di SQL Server non riuscito. Se viene specificato il nome di dominio, il problema è un errore di accesso all'account utente di Windows. Per possibili cause e risoluzioni suggerite, vedere:
Potential cause (Causa potenziale) | Risoluzione suggerita |
---|---|
Si sta provando a usare l'autenticazione di SQL Server, ma l'istanza di SQL Server è configurata per la modalità di autenticazione di Windows. | Verificare che SQL Server sia configurato per l'uso della modalità di autenticazione di SQL Server e Windows. È possibile esaminare e modificare la modalità di autenticazione per l'istanza di SQL Server nella pagina Sicurezza in Proprietà per l'istanza corrispondente in SQL Server Management Studio (SSMS). Per altre informazioni, vedere Modificare la modalità di autenticazione del server. In alternativa, è possibile modificare l'applicazione in modo da usare la modalità di autenticazione di Windows per connettersi a SQL Server. Nota: per questo scenario è possibile visualizzare un messaggio simile al seguente nel log degli errori di SQL Server: Login failed for user '<UserName>'. Reason: An attempt to login using SQL authentication failed. Server is configured for Windows authentication only. |
Si sta tentando di accedere a SQL Server tramite un gruppo e viene visualizzato un messaggio di errore. | Se non si dispone delle autorizzazioni necessarie per accedere al server, il provider visualizza il messaggio di errore "Accesso non riuscito per l'utente "contoso/user1". Usare la funzionalità "Accesso tramite gruppo" che consente di accedere a un server in base all'appartenenza al gruppo. Quando si esegue la xp_logininfo 'contoso/user1' stored procedure, potrebbe verificarsi quanto segue:- Se viene visualizzato un errore, SQL Server non riesce a risolvere il nome utente. È probabile che un nome non sia presente in Active Directory (AD) o che si verifichino problemi di connessione al controller di dominio (DC). Provare con un altro nome per verificare se il problema è specifico di un account specifico. - Se ci si connette a un server tra domini, il gruppo deve trovarsi nel dominio di SQL Server e non nel dominio utente, in modo che l'appartenenza possa essere risolta. - Quando una query di database non restituisce righe, significa che non esiste alcun gruppo che fornisce l'accesso al server. Quando una query restituisce una o più righe, significa che l'utente appartiene a un gruppo che fornisce l'accesso. L'amministratore del database può controllare le autorizzazioni controllando la cartella Security\Logins in SQL Server Management Studio (SSMS). Security \Logins visualizza un elenco di account di accesso creati. Se si tratta di un database indipendente, l'amministratore del database può controllare security \logins sotto il nome del database per controllare e gestire gli account di accesso. Per altre informazioni, vedere Configurare Controllo di accesso utente e autorizzazioni. |
Gli account di accesso SQL non sono abilitati | Il sistema di gestione del database (DBMS) potrebbe mostrare alcune variazioni del Login failed for user '<username>' messaggio. Per risolvere questo errore, effettuare le operazioni seguenti:1. Controllare se il log degli errori di SQL Server contiene il messaggio di errore "Accesso non riuscito per l'utente '<username>'. Motivo: tentativo di accesso con l'autenticazione SQL non riuscita. Il server è configurato solo per autenticazione di Windows." 2. Utilizzare uno dei metodi seguenti per risolvere l'errore: - Usare un account di accesso integrato. Ad esempio, per i provider OLE DB, aggiungere INTEGRATED SECURITY=SSPI al stringa di connessione e per i driver ODBC aggiungere TRUSTED_CONNECTION=YES . Il provider .NET accetta una delle due sintassi.Nota: questo potrebbe causare altri problemi se non sono configurati correttamente per consentire l'autenticazione integrata e richiedere l'analisi come problema separato. - Abilitare gli account di accesso SQL nel server: a. In SQL Server Management Studio fare clic con il pulsante destro del mouse sul nome di SQL Server in Esplora oggetti e scegliere Proprietà. b. Nel riquadro Sicurezza selezionare la modalità di autenticazione di SQL Server e Windows. c. Seleziona OK. d. Riavviare SQL Server per eseguire la modifica. Nota: questo potrebbe causare altri problemi, ad esempio la definizione di un account di accesso SQL. - Provare a specificare un account di Windows locale o un account di dominio per il nome utente. Sono consentiti solo gli account di accesso SQL. L'applicazione deve usare la sicurezza integrata. |
L'account di accesso non esiste nell'istanza di SQL Server a cui si sta tentando di connettersi. | Assicurarsi che ci sia un account di accesso di SQL Server e che sia stato digitato correttamente. Se non esiste, crearlo. Se esiste ma è stato digitato in modo errato, correggerlo nella stringa di connessione dell'applicazione. Il log degli errori di SQL Server includerà uno dei messaggi seguenti: - Login failed for user 'username'. Reason: Could not find a login matching the name provided. - Login failed for user 'Domain\username'. Reason: Could not find a login matching the name provided. Questo può essere un problema comune, se si distribuisce un'applicazione che usa un server DEV o QA nell'ambiente di produzione e non si aggiorna la stringa di connessione. Per risolvere questo problema, assicurarsi di connettersi al server giusto. Se così non fosse, correggere la stringa di connessione. In caso affermativo, concedere all'account l'accesso a SQL Server. In alternativa, se si tratta di un account Windows, concedere l'accesso direttamente o aggiungerlo a un gruppo locale o di dominio autorizzato a connettersi al server database. Per altre informazioni, vedere Creazione di un account di accesso. |
Si usa l'autenticazione di SQL Server, ma la password specificata per l'account di accesso di SQL Server non è corretta. | Controllare il log degli errori SQL per i messaggi come "Motivo: La password non corrisponde a quella per l'account di accesso fornito" per confermare la causa. Per risolvere il problema, usare la password corretta nell'applicazione o usare un account diverso se non è possibile ricordare la password. In alternativa, rivolgersi all'amministratore di SQL Server per reimpostare la password per l'account. Se l'applicazione è SQL Server Integration Services (SSIS), potrebbero essere presenti più livelli di un file di configurazione per il processo, che può eseguire l'override delle impostazioni di Gestione connessioni per il pacchetto. Se l'applicazione è stata scritta dall'azienda e il stringa di connessione viene generato a livello di codice, contattare il team di sviluppo per risolvere il problema. Come soluzione alternativa temporanea, impostare come hardcoded il stringa di connessione e il test. Usare un file UDL o uno script per dimostrare che una connessione è possibile con un stringa di connessione hardcoded. |
La stringa di connessione ha una sintassi, un nome server o credenziali utente non corrette. | Per risolvere questo problema, seguire questa procedura:
|
Nessun account di accesso | Controllare se SQL Server visualizza i messaggi seguenti:Logon Error: 18456, Severity: 14, State: 11. Logon Login failed for user 'CONTOSO\JohnDoe'. Reason: Token-based server access validation failed with an infrastructure error. Check for previous errors. [CLIENT: ] Alcuni errori appartengono all'account di accesso anonimo. Questo problema è correlato al problema Kerberos. Nel file HOSTS è presente una voce manuale non valida, ovvero è stato assegnato il nome del server errato. I problemi rimanenti potrebbero rientrare nelle categorie seguenti:
|
Si sta provando a connettersi usando autenticazione di Windows ma si è connessi a un dominio non corretto. | Verificare di aver eseguito correttamente l'accesso al dominio corretto. Il messaggio di errore visualizza in genere il nome di dominio. |
Controllare le autorizzazioni del database | Il database non viene visualizzato offline in SQL Server Management Studio. Altri utenti, ad esempio l'amministratore di database è in grado di connettersi. All'account utente in questione deve essere concesso l'accesso esplicito al database o deve essere aggiunto a un ruolo di SQL Server o a un gruppo di dominio di Windows locale che ha accesso al database. Per altre informazioni, vedere CREATE USER, ALTER ROLE e ALTER SERVER ROLE |
L'applicazione non è in esecuzione, ad esempio SSMS, come amministratore. | Se si sta provando a connettersi usando le credenziali di amministratore, avviare l'applicazione usando l'opzione Esegui come amministratore . Dopo aver stabilito la connessione, aggiungere l'utente di Windows come singolo account di accesso. |
L'account di accesso viene eliminato dopo una migrazione a un utente del database indipendente. | Se il motore di database supporta i database indipendenti, verificare che l'account di accesso non sia stato eliminato dopo la migrazione a un utente del database indipendente. Per altre informazioni, vedere Autenticazione del database indipendente: Introduzione. |
Il database predefinito dell'account di accesso è offline o non è disponibile. | Rivolgersi all'amministratore di SQL Server e risolvere i problemi relativi alla disponibilità del database. Se l'account di accesso dispone delle autorizzazioni per altri database nel server e non è necessario accedere al database predefinito attualmente configurato nell'applicazione, usare una delle opzioni seguenti: - Richiedere all'amministratore di modificare il database predefinito per l'account di accesso usando l'istruzione ALTER LOGIN o SSMS. : specificare in modo esplicito un database diverso nell'applicazione stringa di connessione. In alternativa, se si usa SSMS passare alla scheda Proprietà connessione per specificare un database attualmente disponibile.Le applicazioni come SSMS possono mostrare un messaggio di errore simile al seguente: Cannot open user default database. Login failed. Login failed for user <user name>. (Microsoft SQL Server, Error: 4064) Sql Server Errorlog avrà un messaggio di errore simile al seguente: Login failed for user '<user name>'. Reason: Failed to open the database '<dbname>' specified in the login properties [CLIENT: <ip address>] Per altre informazioni, vedere MSSQLSERVER_4064. |
Il database specificato in modo esplicito nel stringa di connessione o in SSMS non è corretto, offline o non è disponibile. | - Correggere il nome del database nel stringa di connessione. Prestare attenzione alla distinzione tra maiuscole e minuscole se si usano regole di confronto con distinzione tra maiuscole e minuscole nel server. - Se il nome del database è corretto, rivolgersi all'amministratore di SQL Server e risolvere i problemi relativi alla disponibilità del database. Controllare se il database è offline, non ripristinato e così via. - Se l'account di accesso è stato mappato agli utenti con autorizzazioni per altri database nel server e non è necessario accedere al database attualmente configurato nell'applicazione, specificare un database diverso nel stringa di connessione. In alternativa, se ci si connette a SSMS, usare la scheda Proprietà connessione per specificare un database attualmente disponibile. Sql Server Errorlog avrà un messaggio di errore simile al seguente: Login failed for user <UserName>. Reason: Failed to open the explicitly specified database 'dbname'. [CLIENT: <ip address>] Nota: se il database predefinito dell'account di accesso è disponibile, SQL Server consente la riuscita della connessione. Per altre informazioni, vedere MSSQLSERVER_4064. |
L'utente non dispone delle autorizzazioni per il database richiesto. | - Provare a connettersi come un altro utente con diritti sysadmin per verificare se è possibile stabilire la connettività. - Concedere all'account di accesso l'accesso al database creando l'utente corrispondente (ad esempio, CREATE USER [<UserName>] FOR LOGIN [UserName] ) |
Controllare anche l'elenco completo dei codici di errore in Risoluzione degli errori 18456.
Per altre informazioni sulla risoluzione dei problemi, vedere Risoluzione dei problemi di connettività di SQL Client/Server.
Accesso non riuscito per l'utente NT AUTHORITY\ANONYMOUS LOGON
Esistono almeno quattro scenari per questo problema. Nella tabella seguente esaminare ogni possibile causa applicabile e usare la risoluzione appropriata: vedere la nota seguente per una spiegazione del termine doppio hop.
Possibili cause | Risoluzioni suggerite |
---|---|
Si sta tentando di passare le credenziali NT LAN Manager (NTLM) da un servizio a un altro servizio nello stesso computer (ad esempio: da IIS a SQL Server), ma si verifica un errore nel processo. | Aggiungere le voci del Registro di sistema DisableLoopbackCheck o BackConnectionHostNames . |
Esistono scenari di doppio hop (delega dei vincoli) in più computer. L'errore può verificarsi se la connessione Kerberos non riesce a causa di problemi relativi ai nomi delle entità servizio (SPN). | Eseguire SQLCheck in ogni SQL Server e nel server Web. Usare le guide alla risoluzione dei problemi: 0600 Problema di delega delle credenziali e 0650 Problemi di delega del server collegato di SQL Server. |
Se non viene coinvolto alcun doppio hop (delega di vincoli), è probabile che esistano nomi SPN duplicati e che il client sia in esecuzione come localsystem o un altro account computer che ottiene le credenziali NTLM anziché le credenziali Kerberos. | Usare SQLCheck o Setspn.exe per diagnosticare e risolvere eventuali problemi correlati al nome SPN. Vedere anche Panoramica di Kerberos Configuration Manager per SQL Server. |
I criteri di sicurezza locali di Windows potrebbero essere stati configurati per impedire l'uso dell'account computer per le richieste di autenticazione remota. | Passare a Criteri di sicurezza locali Criteri>>di sicurezza locali Opzioni>di sicurezza Sicurezza di rete: Consenti al sistema locale di usare l'identità computer per NTLM, selezionare l'opzione Abilitato se l'impostazione è disabilitata e quindi selezionare OK. Nota: come descritto in dettaglio nella scheda Spiega , questo criterio è abilitato in Windows 7 e versioni successive per impostazione predefinita. |
Occorrenza intermittente di questo problema quando si usa la delega vincolata può indicare la presenza di un ticket scaduto che non può essere rinnovato dal livello intermedio. Si tratta di un comportamento previsto con uno scenario del server collegato o qualsiasi applicazione che tiene una sessione di accesso per più di 10 ore. | Modificare le impostazioni di delega nel server di livello intermedio da Considera attendibile il computer per la delega solo ai servizi specificati - Usare Kerberos solo per considerare attendibile questo computer per la delega solo ai servizi specificati - Usare qualsiasi protocollo. Per altre informazioni, vedere Accesso anonimo intermittente del doppio hop del server collegato di SQL Server. |
Accesso peer NTLM | Questo errore è correlato al protocollo di autenticazione NTLM usato dal sistema operativo Microsoft Windows. Quando si comunica tra computer che si trovano in workstation o in domini che non si considerano attendibili tra loro, è possibile configurare account identici in entrambi i computer e usare l'autenticazione peer NTLM NTLM Peer Login. Gli account di accesso funzionano solo se l'account utente e la password corrispondono in entrambi i computer. |
Protezione loopback | La protezione loopback è progettata per impedire alle applicazioni di chiamare altri servizi nello stesso computer. È possibile impostare le chiavi del DisableLoopbackCheck Registro di sistema o BackConnectionHostNames (preferite) per consentire questa operazione. Per altre informazioni, vedere Messaggio di errore quando si tenta di accedere a un server in locale usando il nome di dominio completo o il relativo alias CNAME dopo l'installazione di Windows Server 2003 Service Pack 1: Accesso negato o Nessun provider di rete ha accettato il percorso di rete specificato. |
Protezione loopback del listener AlwaysOn | Quando ci si connette al listener Always-On dal nodo primario, la connessione sarà NTLM. Verrà attivata la verifica del loopback e verrà generato un errore "Accesso non riuscito" che informa che l'utente proviene da un dominio non attendibile. Per risolvere questo errore, digitare il nome NETBIOS del listener e il nome completo nella BackConnectionHostNames chiave del Registro di sistema in tutti i computer del gruppo di disponibilità. Per altre informazioni, vedere Messaggio di errore quando si tenta di accedere a un server in locale usando il nome di dominio completo o il relativo alias CNAME dopo l'installazione di Windows Server 2003 Service Pack 1: Accesso negato o Nessun provider di rete ha accettato il percorso di rete specificato. |
Livello di compatibilità LANMAN | Questo problema si verifica in genere tra i computer meno recenti (pre Windows 2008) e i computer più recenti. Impostare il livello di compatibilità LANMAN su 5 in tutti i computer. Ciò impedisce anche NTLM v1. È anche possibile passare a Kerberos per evitare questo problema. |
Account sensibile | Alcuni account possono essere contrassegnati come Sensibili in Active Directory. Questi account non possono essere delegati a un altro servizio in uno scenario a doppio hop. |
Non una destinazione vincolata | Se la delega vincolata è abilitata per un account di servizio specifico, Kerberos avrà esito negativo se il nome SPN del server di destinazione non è incluso nell'elenco di destinazioni della delega vincolata. |
Per servizio-SID | Questa funzionalità limita le connessioni locali per usare NTLM e non Kerberos come metodo di autenticazione. Il servizio può eseguire un solo hop in un altro server usando le credenziali NTLM, ma non può essere delegato ulteriormente senza l'uso della delega vincolata. |
NTLM e delega vincolata | Se la destinazione è una condivisione file, il tipo di delega dell'account del servizio di livello intermedio deve essere Constrained-Any e non Constrained-Kerberos. |
Nota
Un doppio hop comporta in genere la delega delle credenziali utente in più computer remoti. Si supponga, ad esempio, di avere un'istanza di SQL Server denominata SQL1 in cui è stato creato un server collegato per un'istanza remota di SQL Server denominata SQL2. Nella configurazione di sicurezza del server collegato è stata selezionata l'opzione Essere effettuata usando il contesto di sicurezza corrente dell'account di accesso. Quando si usa questa configurazione, se si esegue una query del server collegato in SQL1 da un computer client remoto denominato Client1, le credenziali di Windows dovranno innanzitutto eseguire l'hop da Client1 a SQL1 e quindi da SQL1 a SQL2 (di conseguenza viene chiamato doppio hop). Per altre informazioni, vedere Informazioni sull'hop doppio Kerberos e la panoramica della delega vincolata Kerberos
Accesso non riuscito per l'utente (vuoto)
Questo errore si verifica quando un utente tenta in modo non riuscito di accedere. Questo errore può verificarsi se il computer non è connesso alla rete. Ad esempio, è possibile che venga visualizzato un messaggio di errore simile al seguente:
Source: NETLOGON
Date: 8/12/2012 8:22:16 PM
Event ID: 5719
Task Category: None
Level: Error
Keywords: Classic
User: N/A
Computer: <computer name>
Description: This computer was not able to set up a secure session with a domain controller in domain due to the following: The remote procedure call was cancelled.
This may lead to authentication problems. Make sure that this computer is connected to the network. If the problem persists, please contact your domain administrator.
Una stringa vuota indica che SQL Server ha tentato di distribuire le credenziali al servizio LSASS (Local Security Authority Subsystem Service), ma non è riuscito a causa di un problema. LSASS non era disponibile o non è stato possibile contattare il controller di dominio.
È anche possibile che vengano visualizzati i codici di errore SSPI corrispondenti:
Handshake SSPI non è riuscito con codice di errore 0x80090311 durante la creazione di una connessione con sicurezza integrata; la connessione è stata chiusa.
Handshake SSPI non è riuscito con codice di errore 0x80090304 durante la creazione di una connessione con sicurezza integrata; la connessione è stata chiusa.
Questi codici di errore si traducono come segue:
Errore -2146893039 (0x80090311): non è stato possibile contattare alcuna autorità per l'autenticazione. Errore -2146893052 (0x80090304): non è possibile contattare l'autorità di sicurezza locale.
Per risolvere questi errori, è possibile portare offline il controller di dominio danneggiato o usare NLTEST.EXE per cambiare controller di dominio.
- Per eseguire una query sul controller di dominio, eseguire il NLTEST /SC_QUERY:CONTOSO
comando .
- Per modificare il controller di dominio, eseguire il NLTEST /SC_RESET:CONTOSO\DC03
comando .
Se è necessaria ulteriore assistenza, contattare il team di Microsoft Active Directory.
Controllare i registri eventi nel client e nel server per eventuali messaggi correlati alla rete o correlati ad Active Directory registrati nel momento in cui si è verificato l'errore. Se si trovano, rivolgersi all'amministratore di dominio per risolvere i problemi.
Accesso non riuscito per l'utente '(null)'
Un'indicazione di "null" potrebbe significare che LSASS non può decrittografare il token di sicurezza usando le credenziali dell'account del servizio SQL Server. Il motivo principale di questa condizione è che il nome SPN è associato all'account errato.
Per correggere il problema, attenersi alla seguente procedura:
Usare SQLCheck o Setspn.exe per diagnosticare e risolvere i problemi correlati al nome SPN.
Usare SQLCheck per verificare se l'account del servizio SQL è attendibile per la delega. Se l'output indica che l'account non è attendibile per la delega, rivolgersi all'amministratore di Active Directory per abilitare la delega per l'account.
Nota
E SETSPN -X
-Q
sono comandi utili per verificare la presenza di NOMI SPN duplicati o non posizionati.
Diagnosticare e correggere i problemi di risoluzione dei nomi DNS (Domain Name System). Ad esempio:
Eseguire il ping dell'indirizzo IP usando gli script di PowerShell:
ping -a <your_target_machine>
(usare-4
in modo specifico per IPv4 e-6
IPv6)ping -a <your_remote_IPAddress>
Usare NSLookup per immettere più volte il nome del computer locale e remoto e l'indirizzo IP.
Cercare eventuali discrepanze e mancate corrispondenze nei risultati restituiti. L'accuratezza della configurazione DNS nella rete è importante per una connessione DI SQL Server riuscita. Una voce DNS errata potrebbe causare numerosi problemi di connettività in un secondo momento.
Assicurarsi che i firewall o altri dispositivi di rete non impedisca a un client di connettersi al controller di dominio. I nomi SPN vengono archiviati in Active Directory. Se i client non riescono a comunicare con la directory, la connessione non riesce.
Informazioni aggiuntive sull'errore
Per aumentare il livello di sicurezza, il messaggio di errore restituito al client nasconde deliberatamente la natura dell'errore di autenticazione. Nel log degli errori di SQL Server, tuttavia, un errore corrispondente contiene uno stato di errore mappato a una condizione di errore di autenticazione. Confrontare lo stato di errore restituito con l'elenco seguente per determinare il motivo dell'errore di accesso.
Stato | Descrizione |
---|---|
1 | Le informazioni sugli errori non sono disponibili. Questo stato indica in genere che non si dispone dell'autorizzazione per ricevere i dettagli dell'errore. Per altre informazioni, contattare l'amministratore di SQL Server. |
2 | L'ID utente non è valido. |
5 | L'ID utente non è valido. |
6 | Si è tentato di utilizzare un account di accesso di Windows con l'autenticazione di SQL Server. |
7 | L'account di accesso è disabilitato e la password non è corretta. |
8 | La password non è corretta. |
9 | La password non è valida. |
11 | L'account di accesso è valido, ma l'accesso al server ha avuto esito negativo. Una possibile causa di questo errore è quando l'utente di Windows ha accesso a SQL Server come membro del gruppo degli amministratori locali, ma Windows non fornisce credenziali di amministratore. Per connettersi, avviare il programma di connessione usando l'opzione Esegui come amministratore e quindi aggiungere l'utente di Windows a SQL Server come account di accesso specifico. |
12 | L'account di accesso è valido, ma l'accesso al server ha avuto esito negativo. |
18 | È necessario modificare la password. |
38, 46 | Impossibile trovare il database richiesto dall'utente. |
58 | Quando SQL Server è impostato per usare solo l'autenticazione di Windows e un client prova ad accedere usando l'autenticazione di SQL. Un'altra causa è quando i SID non corrispondono. |
102 - 111 | Errore di Azure AD. |
122 - 124 | Errore dovuto al campo di nome utente o password vuoto. |
126 | Il database richiesto dall'utente non esiste. |
132 - 133 | Errore di Azure AD. |
Esistono altri stati di errore che indicano un errore di elaborazione interno non previsto.
Più rara causa possibile
Motivo dell'errore Un tentativo di accesso con l'autenticazione SQL non è riuscito. Il server è configurato solo per autenticazione di Windows. Può essere restituito nelle situazioni seguenti.
Quando il server è configurato per l'autenticazione in modalità mista e una connessione ODBC usa il protocollo TCP e la connessione non specifica in modo esplicito che la connessione deve usare una connessione attendibile.
Quando SQL Server è configurato per l'autenticazione in modalità mista e una connessione ODBC usa named pipe e le credenziali usate dal client per aprire la named pipe vengono usate per rappresentare automaticamente l'utente e il stringa di connessione non specifica in modo esplicito l'uso di un'autenticazione attendibile.
Per risolvere questo problema, includere TRUSTED_CONNECTION = TRUE
nella stringa di connessione.
Esempi
In questo esempio, lo stato dell'errore di autenticazione è 8 e indica che la password non è corretta.
Data | Origine | Messaggio |
---|---|---|
2007-12-05 20:12:56.34 | Accesso | Errore: 18456, gravità: 14, stato: 8. |
2007-12-05 20:12:56.34 | Accesso | Accesso non riuscito per l'utente '<user_name>'. [CLIENT: <indirizzo> IP] |
Nota
Quando SQL Server viene installato usando la modalità di autenticazione di Windows e viene successivamente modificato in SQL Server e modalità di autenticazione di Windows, l'account di accesso sa viene inizialmente disabilitato. Questo causa l'errore di stato 7: "Accesso non riuscito per l'utente 'sa'". Per abilitare l'account di accesso sa, vedere Modificare la modalità di autenticazione del server.