MSSQL sur Linux : La connexion a échoué

Microsoft.SQLServer.Linux.EventRule.DBEngine.Login_failed__Account (Rule)

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) ».

Knowledge Base article:

Récapitulatif

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) ».

Causes

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 Linux 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 Linux a accès à SQL Server comme membre du groupe Administrateurs local et que Linux 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 Linux à 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.

Résolutions

Paramètres remplaçables

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

Element properties:

TargetMicrosoft.SQLServer.Linux.DBEngine
CategoryEventCollection
EnabledFalse
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableTrue
Alert Message
MSSQL sur Linux : La connexion a échoué
{0}

Member Modules:

ID Module Type TypeId RunAs 
_F6DA1507_12AF_11D3_AB21_00A0C98620CE_ DataSource Microsoft.SQLServer.Linux.DataSource.EventCollectionFiltered Default
GenerateAlert WriteAction System.Health.GenerateAlert Default

Source Code:

<Rule ID="Microsoft.SQLServer.Linux.EventRule.DBEngine.Login_failed__Account" Target="SqlDiscL!Microsoft.SQLServer.Linux.DBEngine" Enabled="false" ConfirmDelivery="true" Remotable="true">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="_F6DA1507_12AF_11D3_AB21_00A0C98620CE_" TypeID="Microsoft.SQLServer.Linux.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>
<SqlExecTimeoutSeconds>60</SqlExecTimeoutSeconds>
<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.Linux.EventRule.DBEngine.Login_failed__Account.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</AlertParameter1>
<AlertParameter2>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</AlertParameter2>
<AlertParameter3>Event ID: $Data/Property[@Name='EventID']$. $Data/Property[@Name='Message']$</AlertParameter3>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>