Quand une tentative de connexion est rejetée en raison d'un échec d'authentification impliquant un nom d'utilisateur ou un mot de passe incorrect, un message semblable au suivant est retourné au client : « Échec de la connexion pour l'utilisateur « nom_utilisateur ». (Microsoft SQL Server, erreur : 18456) ».
Quand une tentative de connexion est rejetée en raison d'un échec d'authentification impliquant un nom d'utilisateur ou un mot de passe incorrect, un message semblable au suivant est retourné au client : « Échec de la connexion pour l'utilisateur « nom_utilisateur ». (Microsoft SQL Server, erreur : 18456) ».
Pour renforcer la sécurité, le message d'erreur retourné au client masque délibérément la nature de l'erreur d'authentification. Toutefois, dans le journal des erreurs SQL Server, une erreur correspondante contient un état d'erreur mappé à une condition d'échec d'authentification. Comparez l'état d'erreur à la liste suivante pour déterminer la raison de l'échec de connexion.
État | Description |
1 | Les informations de l'erreur ne sont pas disponibles. Cet état signifie généralement que vous n'avez pas l'autorisation de recevoir les détails de l'erreur. Contactez votre administrateur SQL Server pour plus d'informations. |
2 | L'identifiant utilisateur n'est pas valide. |
5 | L'identifiant utilisateur n'est pas valide. |
6 | Vous avez tenté d'utiliser un nom de connexion Windows avec l'authentification SQL Server. |
7 | La connexion est désactivée et le mot de passe est incorrect. |
8 | Le mot de passe est incorrect. |
9 | Le mot de passe n'est pas valide. |
11 | La connexion est valide, mais l'accès au serveur a échoué. Une cause possible de cette erreur est si l'utilisateur Windows a accès à SQL Server comme membre du groupe Administrateurs local et que Windows ne fournit pas les informations d'identification d'administrateur. Pour vous connecter, démarrez le programme de connexion à l'aide de l'option Exécuter comme administrateur, puis ajoutez l'utilisateur Windows à SQL Server comme une connexion spécifique. |
12 | La connexion est valide, mais l'accès au serveur a échoué. |
18 | Le mot de passe doit être changé. |
D'autres états d'erreur existent et indiquent une erreur de traitement interne inattendue.
Si vous essayez de vous connecter à l'aide de l'authentification SQL Server, vérifiez que SQL Server est configuré en mode d'authentification mixte.
Si vous essayez de vous connecter à l'aide de l'authentification SQL Server, vérifiez que la connexion SQL Server existe et que vous l'avez correctement orthographiée.
Si vous essayez de vous connecter à l'aide de l'authentification Windows, vérifiez que vous êtes connecté au domaine approprié.
Si l'erreur indique l'état 1, contactez votre administrateur SQL Server.
Si vous essayez de vous connecter à l'aide de vos informations d'identification d'administrateur, démarrez votre application à l'aide de l'option Exécuter comme administrateur. Une fois connecté, ajoutez votre utilisateur Windows comme une connexion individuelle.
Si le moteur de base de données prend en charge les bases de données à relation contenant-contenu, vérifiez que la connexion n'a pas été supprimée après la migration vers un utilisateur de base de données à relation contenant-contenu.
Quand vous vous connectez localement à une instance de SQL Server, les connexions à partir des services exécutés sous NT AUTHORITY\NETWORK SERVICE doivent s'authentifier en utilisant le nom de domaine complet des ordinateurs.
Nom | Description | Valeur par défaut |
Activé | Active ou désactive le flux de travail. | Oui |
Intervalle (en secondes) | Intervalle régulier (en secondes) auquel exécuter le flux de travail. | 300 |
Priorité | Définit la priorité de l'alerte. | 1 |
Gravité | Définit la gravité de l'alerte. | 1 |
Heure de synchronisation | Heure de synchronisation |
|
Délai d'expiration (secondes) | Spécifie la durée pendant laquelle le flux de travail est autorisé à s’exécuter avant d’être fermé et marqué comme ayant échoué. | 200 |
Délai d’attente pour la connexion de base de données (secondes) | Le workflow échoue et enregistre un événement s’il ne peut pas accéder à la base de données pendant la période spécifiée. | 15 |
Target | Microsoft.SQLServer.Windows.DBEngine | ||
Category | EventCollection | ||
Enabled | False | ||
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="false" 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>
<NetbiosComputerName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/NetbiosComputerName$</NetbiosComputerName>
<InstanceName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</InstanceName>
<ConnectionString>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/ConnectionString$</ConnectionString>
<InstanceVersion>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Version$</InstanceVersion>
<InstanceEdition>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Edition$</InstanceEdition>
<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>