Impossibile connettersi a SQL Server utilizzando l'account "sa", cosa mi manca?


20

Sto tentando di accedere a un'istanza di SQL Server 2005 Express utilizzando il comando seguente:

osql -S .\INSTANCE -U sa -P password

Viene visualizzato l'errore: Accesso non riuscito per l'utente "sa".

Posso collegarmi bene usando l'interruttore -E. Devo aggiungere che funziona da mesi. Penso che qualcuno abbia cambiato qualcosa ma non riesco a capire di cosa si tratti.

Questo è quello che ho provato:

  • Accedi utilizzando l'autenticazione di Windows e modificando la password sa:

    sp_password NULL, newpassword, 'sa'

  • Abilitazione dell'accesso "sa":

    ALTER LOGIN sa ENABLE; GO ALTER LOGIN sa WITH PASSWORD = 'newpassword'; PARTIRE

  • Controllato il registro di Windows per assicurarsi che l' autenticazione mista sia abilitata. Il valore era corretto: LoginMode = 2

Cos'altro dovrei controllare? Grazie in anticipo.

INFORMAZIONI ADDIZIONALI:

Questo è un server Windows 2003. Hanno abilitato alcuni criteri password, ricordo che dovevo cambiare la password "sa" predefinita che la mia applicazione usa quando installa SQL Server su un altro più complesso.

Mi sto collegando usando VNC, quindi non posso davvero usare SSMS

La mia applicazione può connettersi utilizzando un altro accesso a SQL Server, ma nessun "sa"

Infine, se non troviamo una soluzione, rimuoverò questa istanza e la installerò di nuovo, ma mi piacerebbe davvero scoprire qual è il problema. Nel caso in cui accada di nuovo e solo per pura curiosità.

Risposte:


23

Come ha detto @SpaceManSpiff, non dimenticare di verificare se la modalità mista è abilitata. Qualcuno ha cambiato questa impostazione per me e ho avuto lo stesso problema. Ecco come risolverlo:

  1. Accedi a MSSQL Server Management Studio con autenticazione di Windows.
  2. In Esplora oggetti di SQL Server Management Studio, fare clic con il pulsante destro del mouse sul server, quindi scegliere Proprietà.
  3. In Proprietà server, seleziona una pagina di "Sicurezza".
  4. Selezionare l'autenticazione del server come "Modalità di autenticazione di SQL Server e Windows" e fare clic su OK. Proprietà del database di gestione del server MSSQL
  5. Riavviare i servizi SQL e quindi provare ad accedere con i dettagli "sa".

Fonte: http://forums.eukhost.com/f15/login-failed-user-sa-microsoft-sql-server-error-18456-a-12544/


12

Ok, sono stato in grado di capire cosa stava succedendo (in un certo senso) e ho avuto una soluzione alternativa.

Sembra che una settimana fa stessero giocando con i criteri di sicurezza di Windows. Stavano aggiungendo / rimuovendo permessi ma non possono darmi esattamente quello che hanno fatto perché davvero non lo sapevano (ahi!).

Ad ogni modo, mi sono connesso usando l'autenticazione di Windows (switch -E) ed ho eseguito la seguente query:

ALTER LOGIN [sa] WITH PASSWORD='newpassword', CHECK_POLICY=OFF
GO
ALTER LOGIN [sa] ENABLE
GO

La chiave qui è CHECK_POLICY = OFF . Questo ha reso il trucco. Spero che questo renderà "sa" immune ai cambiamenti futuri nella loro configurazione del dominio.

Grazie per tutti i tuoi suggerimenti.


6

Cose da controllare

Password sull'account SA

Modalità mista abilitata

L'account SA è disabilitato?

Crea un altro account SQL e provalo (dato che puoi entrare con -E dovresti essere in grado di farlo)

Prova usando una connessione ODBC, puoi creare questa connessione per vedere se la SA funziona

Oh, e prendi sempre tutto in Windows, riavvia (sul serio, questo aiuta il mio server SQL di prova dopo aver fatto cose su di esso)


1

Ho avuto questo problema alcuni anni fa dopo aver installato un ServicePack di Windows (nessun aggiornamento di SQL Server, ma Windows), il SQL Server ha rifiutato le connessioni, fino a quando non è stato installato anche il Service Pack di SQL Server! Ho trovato un messaggio nel registro eventi dopo alcune ore.

Penso che lo abbiano fatto, perché sapevano che c'era un grosso buco nella sicurezza e volevano costringere tutti gli amministratori a installare il pacchetto. Tuttavia, poiché è passato qualche tempo fa, non ho le versioni esatte e così via. Vorrei raccomandare di ricontrollare il registro eventi e installare tutti i service pack più recenti.


Sembra promettente, lo proverò lunedì e riferirò. Grazie per il suggerimento
JAG,

Finalmente non ho provato a installare l'ultimo Service Pack. Vedi la mia "risposta accettata".
JAG,

0

Supponendo che Management Studio o Management Studio Express siano installati, è possibile connettere Management Studio all'istanza utilizzando sa?

JR


1
SSMS non è installato e preferirei non installarlo se possibile. Inoltre, la connessione da un altro computer con SSMS non è un'opzione in quanto si tratta di un server del cliente. Sono disponibili solo gli strumenti da riga di comando.
JAG,

Se hai Management Studio su un altro PC, anche se si trova all'estremità di una VPN, dovresti comunque essere in grado di connetterti. Il punto è verificare se c'è qualcosa di strano nell'impostazione del server o se il problema risiede nel comando osql.
John Rennie,

0

Ti sei assicurato di aver riavviato il servizio SQL Server dopo aver apportato le modifiche al Registro di sistema?


Non è stato necessario modificarlo perché aveva il valore corretto.
JAG,

0

Qualcuno ha rimosso il database che era il database predefinito per "sa"?

Se questo è il problema, prova

EXEC sp_defaultdb 'sa', 'New default database'

In teoria, esiste un solo database ed esiste. Non ho eseguito questo comando però.
JAG,

Normalmente è "maestro". Ma penso che non sia questo il problema ...
splattne,

L'ho appena provato ma non ha fatto differenza. Grazie comunque.
JAG,

0

Se si installa SQL Express 2014, è necessario eseguire alcune operazioni per risolvere questo errore se si tenta di accedere con l'account [sa].

  1. L'account "sa" verrà disabilitato. Quindi dovrai disabilitare l'account da disabilitato ad abilitato nella sezione stato dell'account.

  2. Il server deve avere l'autenticazione Windows e SQL Server abilitata. Per impostazione predefinita, è abilitata solo l'autenticazione di Windows.

  3. Reimposta la password. (vedi il codice qui sotto; ServerFault ha un bug in cui il codice non viene visualizzato allo stesso modo quando si utilizza un elenco ordinato al 6/8/2016)

  4. Riavviare il servizio Windows per SQL Server

=========

ALTER LOGIN sa WITH PASSWORD='password', CHECK_POLICY=OFF;
ALTER LOGIN [sa] ENABLE;

0

A volte l'accesso è disabilitato a causa di molte password errate o di violazione delle norme. Quindi quello che possiamo fare è semplicemente accedere con l'autenticazione della finestra, cambiare la password e abilitare nuovamente l'accesso.

Accedi al database con l'autenticazione di Windows

Esegui query:

ALTER LOGIN [sa] WITH PASSWORD='newpassword', CHECK_POLICY=OFF 
GO
ALTER LOGIN [sa] ENABLE
GO

L'uso di CHECK_POLICY è obbligatorio in quanto specifica che i criteri password Windows del computer su cui è in esecuzione SQL Server devono essere applicati con questo accesso. L'impostazione predefinita è ON quando disattivato cambierà la password senza alcuna difficoltà. Più tardi puoi ON

NOTA: cosa ho osservato che quando CHECK_POLICY è sulla GUI le soluzioni SSME per la modifica della password non funzioneranno ogni volta. Non ho il motivo dietro ma che ho osservato.


0

l'ho risolto come segue accedi con l'autenticazione di Windows vai a proprietà del server >> Sicurezza e modifica l'autenticazione del server


1
Potresti spendere di più con la formattazione (e il completamento) della tua risposta? Come è scritto, non è di grande aiuto.
asdmin,
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.