Impossibile accedere a SQL Server + autenticazione SQL Server + errore: 18456


121

Ho creato un account di accesso sul mio server localhost \ sql2008 (ad es. User123)

Mappato al database (predefinito)

La modalità di autenticazione su SQL Server è impostata su entrambi (Windows e SQL)

Ma l'accesso a SQL Server non riesce con il seguente messaggio (per User123)

Nota: verificare più volte che UserName / Password siano stati digitati correttamente

Dettagli circa l'errore:

Accesso non riuscito per l'utente "User123" (provider di dati Net.SqlClient)

Nome server: localhost \ sql2008 Numero errore: 18456 Gravità: 14 Stato: 1 Numero riga: 65536

qualsiasi aiuto su questo per favore.


1
Testare l'accesso di autenticazione SQL e Windows tramite SqlServer Management Console per l'utente e vedere se è possibile accedere con l'account sopra. Quale fornitore di dati e stringa di connessione stai usando?
Joe Pitz

1
Sto cercando di accedere a SSMS e viene visualizzato l'errore precedente.
Sreedhar

1
Puoi accedere come account amministratore?
Joe Pitz

Accedi come amministratore e controlla il tuo registro eventi. Il motivo dell'errore dovrebbe essere elencato lì. Guarda nella cartella di gestione
Joe Pitz

L'alternativa che ha funzionato per me era stackoverflow.com/questions/28090747/…
Mark Schultheiss

Risposte:


49

Per impostazione predefinita, il messaggio di errore di accesso non riuscito non è altro che una connessione utente client è stata rifiutata dal server a causa della mancata corrispondenza delle credenziali di accesso. La prima attività che potresti controllare è vedere se quell'utente dispone dei privilegi rilevanti su quell'istanza di SQL Server e anche sul database pertinente, va bene. Ovviamente se i privilegi necessari non sono stati impostati, è necessario risolvere il problema concedendo i privilegi pertinenti per l'accesso dell'utente.

Anche se se quell'utente dispone di autorizzazioni rilevanti sul database e sul server, se il server riscontra problemi di credenziali per tale accesso, impedirà di concedere l'autenticazione a SQL Server, il client riceverà il seguente messaggio di errore:

Msg 18456, Level 14, State 1, Server <ServerName>, Line 1
Login failed for user '<Name>'

Ok ora che cosa, guardando il messaggio di errore ti sembra che questo non sia descrittivo per capire il livello e lo stato. Per impostazione predefinita, l'errore del sistema operativo mostrerà "Stato" come 1 indipendentemente dalla natura dei problemi nell'autenticazione dell'accesso. Quindi, per indagare ulteriormente, è necessario esaminare anche il log degli errori dell'istanza di SQL Server pertinente per ulteriori informazioni sulla gravità e lo stato di questo errore. Potresti esaminare una voce corrispondente nel registro come:

2007-05-17 00:12:00.34 Logon     Error: 18456, Severity: 14, State: 8.
or

2007-05-17 00:12:00.34 Logon     Login failed for user '<user name>'.

Come definito sopra, le colonne Gravità e Stato sull'errore sono fondamentali per trovare il riflesso accurato dell'origine del problema. Il numero di errore 8 sopra per lo stato indica un errore di autenticazione a causa di una mancata corrispondenza della password. La documentazione in linea si riferisce: per impostazione predefinita, i messaggi definiti dall'utente di gravità inferiore a 19 non vengono inviati al registro dell'applicazione Microsoft Windows quando si verificano. I messaggi definiti dall'utente di gravità inferiore a 19 pertanto non attivano gli avvisi di SQL Server Agent.

Sung Lee, Program Manager in SQL Server Protocols (Dev.team) ha delineato ulteriori informazioni sulla descrizione dello stato di errore: Gli stati di errore comuni e le relative descrizioni sono forniti nella tabella seguente:

ERROR STATE       ERROR DESCRIPTION
------------------------------------------------------------------------------
2 and 5           Invalid userid
6                 Attempt to use a Windows login name with SQL Authentication
7                 Login disabled and password mismatch
8                 Password mismatch
9                 Invalid password
11 and 12         Valid login but server access failure
13                SQL Server service paused
18                Change password required


Well I'm not finished yet, what would you do in case of error:

2007-05-17 00:12:00.34 Logon     Login failed for user '<user name>'.

È possibile vedere che non è stato definito alcun livello di gravità o stato dal log degli errori dell'istanza di SQL Server. Quindi la prossima opzione per la risoluzione dei problemi è esaminare il registro di sicurezza del Visualizzatore eventi [modifica perché la schermata non è presente ma ottieni l'estensione

idea, guarda nel registro eventi per eventi interessanti].


1
Grazie guarderemo e vedremo come va
Sreedhar

1
collegamento morto si prega di considerare la revisione
Chris Hayes

10
La risposta migliore sotto questa dovrebbe essere scelta, non questa.
void

4
Leggi il post qui sotto.
Levi Fuller

6
@ void.pointer l'OP ha già stabilito che "la modalità di autenticazione su SQL Server è impostata su entrambi (Windows e SQL)". Quindi il post qui sotto non ha alcuna rilevanza per questa domanda.
Manachi

336

È necessario abilitare l'autenticazione di SQL Server:

  1. In Esplora oggetti, fare clic con il pulsante destro del mouse sul server e fare clic su "Proprietà"

Finestra di dialogo Proprietà DBMS

  1. Nella finestra "Proprietà server" fare clic su "Protezione" nell'elenco delle pagine a sinistra. In "Autenticazione server" scegli l'opzione di opzione "Modalità di autenticazione di SQL Server e Windows".

Finestra di dialogo Autenticazione di SQL Server

  1. Riavviare il servizio SQLEXPRESS.

29
Oh GRAZIE un milione di volte. Principalmente per la parola "riavvia" sopra!
Magnus Smith il

4
So che è vecchio, ma mi ha salvato totalmente il culo. Grazie Prateek. Apprezzalo. BISOGNO di riavviare!
Levi Fuller

3
Perché dovrebbe funzionare se OP afferma esplicitamente che "La modalità di autenticazione su SQL Server è impostata su entrambi (Windows e SQL)"?
Tim Schmelter

4
Questa risposta è ridondante e non utile per la domanda. L'OP ha già stabilito che "la modalità di autenticazione su SQL Server è impostata su entrambi (Windows e SQL)".
Manachi

1
Questo è stato fantastico .. !! Grazie PrateekSaluja
Amin Sayed

44

Ho avuto lo stesso problema, tuttavia il mio era perché non avevo impostato l'autenticazione del server su "SQL Server e modalità di autenticazione di Windows" (che avevi) Volevo solo menzionarlo qui nel caso in cui qualcuno lo avesse perso nella tua domanda.

Puoi accedervi da

  • Fare clic con il tasto destro sull'istanza (IE SQLServer2008)
  • Seleziona "Proprietà"
  • Seleziona l'opzione "Sicurezza"
  • Cambia "Autenticazione server" in "Modalità di autenticazione di SQL Server e Windows"
  • Riavviare il servizio SQL Server
    • Fare clic con il tasto destro sull'istanza
    • Fai clic su "Riavvia"

6
Ho passato circa due ore perché non riuscivo a capire che avevo bisogno di RIAVVIARE l'intero server. Questo è semplicemente folle che sia necessario un riavvio per una cosa del genere. Microsoft non ha limiti al crapware che sputano.
Utente registrato

1
Questa è anche una risposta fondamentale per il motivo per cui non è possibile connettersi all'istanza Amazon EC2 su cui è installato il server SQL.
Teoman shipahi

19

Puoi accedervi da

Right click on instance (IE SQLServer2008)
Select "Properties"
Select "Security" option
Change "Server authentication" to "SQL Server and Windows Authentication mode"
Restart the SQLServer service
    Right click on instance
    Click "Restart"

Solo per chiunque altro legga questo: Questo ha funzionato anche per me su SQL Server 2012. Grazie


1
Grazie è stato perfetto, dritto al punto .. la risposta accettata è piena di buone informazioni ma questo è ciò che ha funzionato per me.
Tony

4
Questo non può funzionare per OP poiché ha detto che "la modalità di autenticazione su SQL Server è impostata su entrambi (Windows e SQL)".
Tim Schmelter

1

La soluzione corretta al problema è assicurarsi che l'autenticazione del server SQL sia attivata per SQL Server.


1

Dopo aver abilitato la "modalità di autenticazione di SQL Server e Windows", passare a quanto segue.

  1. Gestione computer (nel menu Start)
  2. Servizi e applicazioni
  3. Gestione configurazione SQL Server
  4. Configurazione di rete di SQL Server
  5. Protocolli per MSSQLSERVER
  6. Fare clic con il tasto destro su TCP / IP e abilitarlo.

Infine riavviare SQL Server.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.