MSSQL sur Windows : Impossible d'ouvrir la base de données par défaut de l'utilisateur. La connexion a échoué

Microsoft.SQLServer.Windows.EventRule.DBEngine.Cannot_open_user_default_database._Login_failed_1_5_Rule (Rule)

Quand un client se connecte à une instance SQL Server sans indiquer de contexte de base de données, la base de données définie par défaut pour sa connexion est utilisée. Si cette base de données n'est pas disponible pour une raison quelconque, le message ci-dessus apparaît.

Knowledge Base article:

Résumé

Quand un client se connecte à une instance SQL Server sans indiquer de contexte de base de données, la base de données définie par défaut pour sa connexion est utilisée. Si cette base de données n'est pas disponible pour une raison quelconque, le message ci-dessus apparaît.

Remarque : si la connexion est membre d'un ou de plusieurs groupes Windows définis également comme connexions dans SQL Server, la base de données par défaut de l'un de ces groupes peut être utilisée. Il n'existe pas de méthode fiable pour prédire les bases de données par défaut qui seront choisies lors d'une tentative de connexion. Par conséquent, il est important de vérifier l'appartenance au groupe du compte de connexion et de vérifier la base de données par défaut définie pour tous les groupes afin de s'assurer qu'ils sont tous disponibles.

Résolutions

Vous devez rendre accessible la base de données par défaut ou éviter de l'utiliser. Vos options sont notamment :

Pour plus d'informations sur les bases de données par défaut, consultez « sp_defaultdb » dans la documentation en ligne et l'article 307864 de la Base de connaissance Microsoft.

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.

2

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.Windows.DBEngine
CategoryEventCollection
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
RemotableTrue
Alert Message
MSSQL sur Windows : Impossible d'ouvrir la base de données par défaut de l'utilisateur. La connexion a échoué
{0}
CommentMom2017ID='{4FFA6A6A-3E49-468E-8C4A-DF5029908802}';MOM2017GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}

Member Modules:

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

Source Code:

<Rule ID="Microsoft.SQLServer.Windows.EventRule.DBEngine.Cannot_open_user_default_database._Login_failed_1_5_Rule" Target="SqlDiscW!Microsoft.SQLServer.Windows.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2017ID='{4FFA6A6A-3E49-468E-8C4A-DF5029908802}';MOM2017GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="_F6DA1507_12AF_11D3_AB21_00A0C98620CE_" Comment="{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>4064</EventDisplayNumber>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="Health!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>2</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.Windows.EventRule.DBEngine.Cannot_open_user_default_database._Login_failed_1_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>Event ID: $Data/Property[@Name='EventID']$. $Data/Property[@Name='Message']$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>