Errore di accesso a Microsoft SQL Server: 18456


295

Ricevo questo errore mentre provo a connettermi a SQL Server.

Errore di Microsoft SQL Server: 18456

Qualcuno può dirmi cosa significa il codice di errore?


6
Una ricerca rapida sembra indicare che il codice di errore è un errore di accesso ed è generalmente accompagnato da informazioni più dettagliate.
David,

E che informazioni più dettagliate dovrebbero essere nel registro degli errori del server SQL. Il numero stesso deliberatamente non ti dice molto, quindi i cracker non possono usarlo per indizi su dove i loro tentativi stanno andando male.
Tony Hopkinson,

informazioni utili trovate qui
sairfan,

1
Dovevo solorun as administrator
Jacksonkr

basta controllare questa soluzione: stackoverflow.com/questions/41386538/...
Akash Singh Sengar

Risposte:


706

Se stai provando a connetterti utilizzando "Autenticazione di SQL Server", potresti voler modificare l'autenticazione del server:

All'interno di Microsoft SQL Server Management Studio in Esplora oggetti:

  1. Fare clic con il tasto destro sul server e fare clic Properties

  2. Vai alla Securitypagina

  3. Sotto Server authenticationscegli il SQL Server and Windows Authentication modepulsante di opzione

  4. Clic OK

  5. Riavvia i servizi SQL


32
Grazie. Peccato che non ci siano messaggi di avviso quando si tenta di aggiungere utenti.
JohnnyBizzle,

12
Cosa intendi esattamente con "Server clic destro e proprietà clic" dove si trova?
emcor

9

21
Questo è un problema molto comune che le persone incontrano. Il fatto che sia possibile creare account di accesso di SQL Server al contenuto del tuo cuore senza rendersi conto che questa semplice impostazione è disattivata è piuttosto fonte di confusione IMO. Lo consiglierei come risposta corretta.

7
@JGilmartin, Come sarai esattamente in grado di connetterti al server in Esplora oggetti quando hai l'errore 18456 che significa che non puoi connetterti ??
Shai Alon,

69

Dai un'occhiata a questo articolo del blog dal team della piattaforma dati.

http://blogs.msdn.com/b/sql_protocols/archive/2006/02/21/536201.aspx

È necessario esaminare la parte relativa allo stato del messaggio di errore per trovare la causa principale del problema.

2, 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, 12 = Valid login but server access failure
13 = SQL Server service paused
18 = Change password required

Successivamente, Google come risolvere il problema.


42
Non per suonare il mio corno, ma ho raccolto molte più informazioni qui: sqlblog.com/blogs/aaron_bertrand/archive/2011/01/14/…
Aaron Bertrand

Hai sempre suonato il clacson ... Grazie per il voto positivo? Ma la tua lista sembra essere più completa! Penso che la maggior parte delle persone non sappia usare Google.
CRAFTY DBA,

1
Sono stato tentato di aumentare il voto, tuttavia sono lacerato perché rispondere alle domande a cui Google potrebbe semplicemente incoraggiare le persone a continuare a chiedere qui invece di cercare ...
Aaron Bertrand

13
Google potrebbe probabilmente rispondere al 99% delle domande qui, tuttavia una semplice domanda e risposta fa risparmiare una notevole quantità di tempo di ricerca e riversando articoli / blog spesso superflui, e quindi un voto positivo da parte mia!
Chris Nevill,

12
QUI è dove trovo le risposte quando uso google (Google cerca COSÌ meglio di SO cerca COSÌ ...)
Cos Callis

27

Prima di aprire, fai clic con il pulsante destro del mouse e scegli "Esegui come amministratore". Questo ha risolto il problema per me.


1
questa era la soluzione per me. Ho avuto State: 1nel messaggio di errore.
GraehamF,

@Gsic Sei un vero salvatore. Faccio fatica da più di un giorno e la tua soluzione l'ha risolto. Grazie
Karthik il

Prima di aprire cosa ??
Mike

11

per prima cosa vedi i dettagli dell'errore se "state" è "1" Assicurati che il database sia impostato per l'autenticazione SQL e Windows in SQL server / Proprietà / Sicurezza.

per altri stati vedi le risposte sopra ....


1
OMG grazie! Nessuno dei miei accessi funzionava, quindi mi sono imbattuto in questa risposta e ho scoperto che in qualche modo la mia istanza di SQL Express è stata cambiata da "Autenticazione SQL e Windows" a "Autenticazione Windows". Modificato e tutto funziona.
Ian Kemp

1
Inoltre, la chiusura di SSMS non è sufficiente, è necessario riavviare il servizio SqlServer per rendere effettive le modifiche.
Ravid Goldenberg,

10

Ho affrontato questo problema.

Si prega di guardare l'immagine allegata,

Passaggio 1: vai alla proprietà del server

Passaggio 2: vai su Sicurezza

Passaggio 3: modificare l'autenticazione del server come server SQL e modalità di autenticazione di Windows

e riavvia il tuo server SQL.

inserisci qui la descrizione dell'immagine


9
  1. Controlla se l'autenticazione in modalità mista è abilitata nel tuo server-> proprietà
  2. Quindi creare un accesso nel server-> sicurezza
  3. crea un utente per tale accesso nel tuo database
  4. Quindi riavviare il server facendo clic con il tasto destro sull'istanza e selezionare riavvia

5

Mi è appena successo e si è rivelato diverso da tutti gli altri casi elencati qui.

Mi capita di avere due server virtuali ospitati nello stesso cluster, ognuno con il proprio indirizzo IP. L'host ha configurato uno dei server come SQL Server e l'altro come server Web. Tuttavia, SQL Server è installato e in esecuzione su entrambi. L'host ha dimenticato di menzionare quale dei server è l'SQL e quale è il Web, quindi ho appena ipotizzato che il primo sia Web, il secondo è SQL.

Quando mi sono connesso a (quello che pensavo fosse) SQL Server e ho provato a connettermi tramite SSMS, scegliendo l'autenticazione di Windows, ho ricevuto l'errore menzionato in questa domanda. Dopo aver tirato molti capelli, ho esaminato tutte le impostazioni, tra cui Configurazione di rete di SQL Server, Protocolli per MSSQLSERVER:

screenshot della configurazione TCP / IP

Facendo doppio clic sul TCP / IP mi ha dato questo:

Proprietà TCP / IP, con indirizzo IP errato

L'indirizzo IP era dell'altro server virtuale! Questo alla fine mi ha fatto capire che ero semplicemente confuso tra i server e tutto funzionava bene sul secondo server.


4

Se si modificano le credenziali di un utente di accesso o si aggiunge un nuovo utente di accesso, dopo aver effettuato l'accesso sarà necessario riavviare il servizio SQL Server. per quello

VAI a -> Servizi riga di colore grigio

Quindi vai a SQL Server (MSSQLSERVER) e fermati e ricomincia

Ora prova ad accedere, spero che tu possa farlo.

Grazie


3

18456 Elenco degli stati di errore

DESCRIZIONE ERRORE STATO ERRORE

  • Stato 2 e Stato 5 Userid non valido
  • Stato 6 Tentativo di utilizzare un nome di accesso di Windows con autenticazione SQL
  • Stato 7 Accesso disabilitato e password non corrispondente
  • Stato 8 Mancata corrispondenza password
  • Stato 9 Password non valida
  • Stato 11 e Stato 12 Accesso valido ma errore di accesso al server
  • Stato 13 Servizio SQL Server in pausa
  • Stato 18 È richiesta la modifica della password

Cause potenziali Di seguito è riportato un elenco di motivi e alcune brevi spiegazioni su cosa fare:

Autenticazione SQL non abilitata : se si utilizza SQL Login per la prima volta sull'istanza di SQL Server, molto spesso si verifica l'errore 18456 poiché il server potrebbe essere impostato in modalità Autenticazione di Windows (solo).

Come riparare ? Controllare questa pagina della modalità di autenticazione di SQL Server e Windows.

ID utente non valido: SQL Server non è in grado di trovare l' specificato sul server che si sta tentando di ottenere. La causa più comune è che a questo ID utente non è stato concesso l'accesso sul server ma questo potrebbe anche essere un semplice errore di battitura o si sta tentando accidentalmente di connettersi a un altro server (tipico se si utilizza più di un server)

Password non valida: password errata o solo un errore di battitura. Ricorda che questo nome utente può avere password diverse su server diversi.

errori meno comuni: l'ID utente potrebbe essere disabilitato sul server. L'accesso a Windows è stato fornito per l'autenticazione SQL (passare all'autenticazione di Windows. Se si utilizza SSMS potrebbe essere necessario eseguire come utente diverso per utilizzare questa opzione). La password potrebbe essere scaduta e probabilmente molte altre ragioni… Se conosci qualcun altro fammelo sapere.

Spiegazioni sullo stato 1 del 18456: di solito Microsoft SQL Server fornisce lo stato di errore 1 che in realtà non significa nulla a parte il fatto che si è verificato l'errore 18456. Lo stato 1 viene utilizzato per nascondere lo stato effettivo al fine di proteggere il sistema, il che per me ha senso. Di seguito è riportato un elenco con tutti i diversi stati e per ulteriori informazioni sul recupero di stati accurati visitare Informazioni sui messaggi di errore "Accesso non riuscito" (errore 18456) in SQL Server 2005

spero che aiuti


2

Fai clic con il pulsante destro del mouse sull'utente, vai su Proprietà, modifica il database predefinito in master Questa è la schermata dell'immagine che mostra cosa devi controllare se hai l'errore 19456. A volte è predefinito su un database che l'utente non ha autorizzazione


2

Prima vai alla barra di avvio, quindi cerca i servizi locali Quindi fai clic su "Visualizza servizi locali" Quindi aprirà la finestra di servizio, quindi vai a SQL Server (MSSQLSERVER) fai clic destro su di esso e fai clic su stop, quindi fai nuovamente clic destro su di esso e fai clic su Start. Ora puoi accedere e inserire il tuo nome utente come 'sa' e la password è la tua password vinta.



1

Verifica se sei connesso alla rete se si tratta di un PC membro del dominio. Inoltre, assicurati di non essere su un doppio PC domestico poiché i tuoi percorsi potrebbero essere errati a causa delle metriche di rete. Ho avuto questo problema quando non riuscivo a connettermi al dominio l'autenticazione di Windows SQL passava all'account PC locale ma lo registrava come autenticazione SQL. Una volta disabilitato il mio adattatore wireless e riavviato, l'integrazione di Windows è tornata all'account di dominio e autenticato bene. Avevo già impostato la modalità mista come hai già fatto, quindi i post precedenti non si applicano.



0

Credo che ciò possa accadere se si sta tentando di accedere con un utente definito in Active Directory, ma si tenta di utilizzare "Autenticazione di SQL Server" nella schermata di accesso. Non so come specificare un altro utente con autenticazione NTLM / Windows: quando faccio clic sul menu a discesa Autenticazione di Windows, il nome utente e la password vengono cancellati e posso accedere solo come me stesso.


0

Nel mio caso, più tentativi errati hanno bloccato l'account. A tale scopo, ho provato a eseguire la query seguente e ha funzionato: ALTER LOGIN WITH PASSWORD = UNLOCK E assicurati di impostare l'opzione "Enforce Password Security" per l'utente specifico da deselezionare tasto destro del mouse su SQL Server -> Proprietà.


0

Risoluzione dei problemi di connessione a SQL Server

Nel caso in cui non si riesca a connettersi con l'autenticazione SQL e si siano provate le altre soluzioni.

Puoi provare quanto segue:

Controlla la connettività

  • Disabilita Firewall.
  • Esegui PortQry sul 1434 e controlla la risposta.

Controlla lo stato

  • Prova a connetterti con SSMS o sqlcmd e controlla il messaggio.
  • Lo stato 1 è raramente documentato ma significa solo che non hai il diritto di conoscere il vero stato.
  • Guarda il file di registro nella directory del server SQL per sapere qual è lo stato.

Lo stato 5

Che cosa ? il mio login non esiste? è proprio lì, posso vederlo in SSMS. Come può essere ?

La spiegazione più probabile è quella più probabile.

Lo stato del login

  • Distruggi, ricrealo, abilitalo.
  • reimpostare la password.

O...

"Non guardi nel posto giusto" o "quello che vedi non è quello che pensi".

Il conflitto DB locale e SQLEXPRESS

Se ti connetti con SSMS con autenticazione di Windows e la tua istanza si chiama SQLEXPRESS, probabilmente stai guardando LocalDb e non il server giusto . Quindi hai appena creato il tuo login su LocalDb.

Quando ti connetti tramite l'autenticazione di SQL Server con SSMS, proverà a connettersi al server reale SQLEXPRESS dove il tuo amato accesso non esiste ancora.

Nota aggiuntiva: controlla nella scheda dei parametri di connessione se non hai dimenticato qualche strana stringa di connessione lì.



0

Un'altra soluzione ha funzionato per me. serever->security->logins->new logins->General->crea il tuo nome utente come nome di accesso, fai clic su autenticazione sql server aggiungi password

deseleziona le tre caselle di controllo della password. Questo funzionerà.

Ricorda di modificare le proprietà del server -> Sicurezza da Server authenticationaSQL Server and Windows Authentication mode


0

si può fare in linux per mssql cambiare password per un account sa

installazione sudo / opt / mssql / bin / mssql-conf

The license terms for this product can be downloaded from
 http://go.microsoft.com/fwlink/?LinkId=746388 Jump Jump
and found in /usr/share/doc/mssql-server/LICENSE.TXT.
Do you accept the license terms? [Yes/No]:yes
  Setting up Microsoft SQL Server
Enter the new SQL Server system administrator password:  --Enter strong password
Confirm the new SQL Server system administrator password: --Enter strong password
 starting Microsoft SQL Server...
 Enabling Microsoft SQL Server to run at boot...
Setup completed successfully.

0

Ho ricevuto questo errore dopo aver creato un nuovo utente sysadmin nella mia istanza SQL. Il mio utente amministratore è stato creato con un dominio specifico MyOrganization / useradmin

L'uso di useradmin in un ambiente disconnesso consente di creare altri utenti utilizzando l'autenticazione di SQL Server, ma non appena si tenta di accedere si ottiene

Errore di Microsoft SQL Server: 18456

Per risolvere il problema, prova a connetterti di nuovo alla rete dell'organizzazione e crea l'utente mentre sei connesso, quindi puoi disconnetterti e funzionerà.


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.