Quando un tentativo di connessione viene rifiutato a causa di un errore di autenticazione dovuto a una password o un nome utente errati, al client viene restituito un messaggio simile al seguente: "Accesso non riuscito per l'utente 'nome_utente'. (Microsoft SQL Server, errore: 18456)".
Quando un tentativo di connessione viene rifiutato a causa di un errore di autenticazione dovuto a una password o un nome utente errati, al client viene restituito un messaggio simile al seguente: "Accesso non riuscito per l'utente 'nome_utente'. (Microsoft SQL Server, errore: 18456)".
Per aumentare la sicurezza, il messaggio di errore restituito al client nasconde deliberatamente la natura dell'errore di autenticazione. Tuttavia, l'errore corrispondente nel log degli errori di SQL Server contiene lo stato di errore che mappa a una condizione di errore di autenticazione. Confrontare lo stato di errore con l'elenco seguente per determinare il motivo dell'errore di accesso.
Stato | Descrizione |
1 | Le informazioni sull'errore non sono disponibili. Questo stato significa in genere che non si è autorizzati a ricevere i dettagli dell'errore. Contattare l'amministratore di SQL Server per altre informazioni. |
2 | L'ID utente non è valido. |
5 | L'ID utente non è valido. |
6 | Si è provato a usare il nome di 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 non è riuscito. Questo errore può verificarsi quando l'utente Windows accede a SQL Server come membro del gruppo di amministratori locale ma Windows non fornisce le credenziali di amministratore. Per connettersi, avviare il programma con l'opzione Esegui come amministratore, quindi aggiungere l'utente Windows a SQL Server come account di accesso specifico. |
12 | L'account di accesso è valido ma l'accesso al server non è riuscito. |
18 | È necessario cambiare la password. |
Esistono altri stati di errore che indicano un errore di elaborazione interna imprevisto.
Se si sta provando a connettersi con l'autenticazione di SQL Server, verificare che SQL Server sia configurato in modalità autenticazione mista.
Se si sta provando a connettersi con l'autenticazione di SQL Server, verificare che l'account di accesso di SQL Server esista e che sia stato immesso correttamente.
Se si sta provando a connettersi con l'autenticazione di Windows, verificare di avere eseguito l'accesso al dominio corretto.
Se l'errore indica lo stato 1, contattare l'amministratore di SQL Server.
Se si sta provando a connettersi con le credenziali di amministratore, avviare l'applicazione con l'opzione Esegui come amministratore. Una volta connessi, aggiungere l'utente Windows come singolo account di accesso.
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 di database indipendente.
Quando ci si connette localmente a un'istanza di SQL Server, le connessioni dai servizi in esecuzione in NT AUTHORITY\NETWORK SERVICE devono eseguire l'autenticazione usando il nome di dominio completo dei computer.
Nome | Descrizione | Valore predefinito |
Attivato | Abilita o disabilita il flusso di lavoro. | Sì |
Intervallo (secondi) | Intervallo di tempo ricorrente in secondi in cui eseguire il flusso di lavoro. | 300 |
Priorità | Definisce la priorità dell'avviso. | 1 |
Gravità | Definisce la gravità dell'avviso. | 1 |
Tempo di sincronizzazione | Tempo di sincronizzazione |
|
Timeout (secondi) | Specifica il tempo di esecuzione consentito per il flusso di lavoro prima che venga chiuso e contrassegnato come non riuscito. | 200 |
Timeout per la connessione di database (secondi) | Il flusso di lavoro avrà esito negativo e registrerà un evento se non riesce ad accedere al database durante il periodo specificato. | 15 |
Target | Microsoft.SQLServer.Windows.DBEngine | ||
Category | EventCollection | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Warning | ||
Alert Priority | Normal | ||
Remotable | True | ||
Alert Message |
|
ID | Module Type | TypeId | RunAs |
---|---|---|---|
_F6DA1507_12AF_11D3_AB21_00A0C98620CE_ | DataSource | Microsoft.SQLServer.Windows.DataSource.EventCollectionFiltered | Default |
GenerateAlert | WriteAction | System.Health.GenerateAlert | Default |
<Rule ID="Microsoft.SQLServer.Windows.EventRule.DBEngine.Login_failed__Account" Target="SqlDiscW!Microsoft.SQLServer.Windows.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="_F6DA1507_12AF_11D3_AB21_00A0C98620CE_" TypeID="Microsoft.SQLServer.Windows.DataSource.EventCollectionFiltered">
<MachineName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</MachineName>
<InstanceName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</InstanceName>
<ConnectionString>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/ConnectionString$</ConnectionString>
<MonitoringType>$Target/Property[Type="SqlDiscW!Microsoft.SQLServer.Windows.DBEngine"]/MonitoringType$</MonitoringType>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>200</TimeoutSeconds>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
<EventDisplayNumber>18456</EventDisplayNumber>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="Health!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>1</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.Windows.EventRule.DBEngine.Login_failed__Account.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>Event ID: $Data/Property[@Name='EventID']$. $Data/Property[@Name='Message']$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>