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.
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.
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.
Modifiez votre chaîne de connexion afin de toujours spécifier une base de données particulière.
Vérifiez que la base de données par défaut définie pour chaque connexion d'accès existe encore et qu'elle est accessible. Examinez le journal des erreurs SQL Server afin de déterminer les raisons pour lesquelles une base de données particulière n'est pas accessible.
Utilisez un outil comme OSQL pour spécifier une base de données particulière lors de la connexion initiale. Une fois connecté, exécutez sp_defaultdb pour remplacer la base de données par défaut de votre connexion par une base de données accessible.
Connectez-vous en utilisant un compte membre du rôle serveur fixe sysadmin ou securityadmin, et exécutez sp_defaultdb pour remplacer la base de données par défaut de la connexion ayant échoué par une base de données accessible. 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.
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 |
Target | Microsoft.SQLServer.Windows.DBEngine | ||
Category | EventCollection | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Remotable | True | ||
Alert Message |
| ||
Comment | Mom2017ID='{4FFA6A6A-3E49-468E-8C4A-DF5029908802}';MOM2017GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74} |
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.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>