Wenn ein Client eine Verbindung mit einer SQL Server-Instanz herstellt, ohne einen Datenbankkontext anzugeben, wird die für die Anmeldung definierte Standarddatenbank verwendet. Wenn diese Datenbank aus irgendeinem Grund nicht verfügbar ist, wird die oben angegebene Meldung angezeigt.
Wenn ein Client eine Verbindung mit einer SQL Server-Instanz herstellt, ohne einen Datenbankkontext anzugeben, wird die für die Anmeldung definierte Standarddatenbank verwendet. Wenn diese Datenbank aus irgendeinem Grund nicht verfügbar ist, wird die oben angegebene Meldung angezeigt.
Hinweis: Wenn der Anmeldename Mitglied bei mindestens einer Windows-Gruppe ist, die auch für die Anmeldung innerhalb von SQL Server definiert ist, kann die Standarddatenbank für eine dieser Gruppen verwendet werden. Es kann nicht zuverlässig vorausgesagt werden, welche dieser Standarddatenbanken während eines Anmeldeversuchs ausgewählt wird. Es ist deshalb wichtig, die Gruppenmitgliedschaft für das Anmeldekonto und anschließend die Standarddatenbanken für alle Gruppen im Hinblick auf ihre vollständige Verfügbarkeit zu überprüfen.
Der Zugriff auf die Standarddatenbank muss möglich sein. Ansonsten sollte diese Datenbank nach Möglichkeit nicht verwendet werden. Diese Optionen umfassen Folgendes:
Weitere Informationen zu den Standarddatenbanken finden Sie unter "sp_defaultdb" in der Onlinedokumentation und in den Microsoft-Wissensdatenbankartikeln 307864 und 196076.
Ändern Sie Ihre Verbindungszeichenfolge, um immer eine bestimmte Datenbank anzugeben.
Überprüfen Sie, ob die zu jeder Anmeldung definierte Standarddatenbank noch vorhanden und zugänglich ist. Stellen Sie anhand des SQL Server-Fehlerprotokolls fest, warum auf eine bestimmte Datenbank kein Zugriff besteht.
Geben Sie bei der ursprünglichen Verbindung ein Tool wie OSQL an, um eine bestimmte Datenbank festzulegen. Sobald die Verbindung besteht, führen Sie sp_defaultdb aus, um von der Standarddatenbank für Ihre Anmeldung zu einer aktuell verfügbaren Datenbank zu wechseln.
Melden Sie sich mit einem Konto an, welches Mitglied der festen Serverrollen sysadmin oder securityadmin ist, und führen Sie sp_defaultdb aus, um von der Standarddatenbank für die fehlgeschlagene Anmeldung zu einer verfügbaren Datenbank zu wechseln. Weitere Informationen zu Standarddatenbanken finden Sie unter "sp_defaultdb" in der Onlinedokumentation und in den Microsoft-Wissensdatenbankartikeln 307864 und 196076.
Name | Beschreibung | Standardwert |
Aktiviert |
| Ja |
Generiert Warnungen |
| Ja |
Priorität |
| 1 |
Schweregrad |
| 2 |
Target | Microsoft.SQLServer.2014.DBEngine | ||
Category | EventCollection | ||
Enabled | True | ||
Event_ID | 4064 | ||
Event Source | $Target/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.DBEngine"]/ServiceName$ | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Remotable | True | ||
Alert Message |
| ||
Event Log | Application | ||
Comment | Mom2014ID='{4FFA6A6A-3E49-468E-8C4A-DF5029908802}';MOM2014GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74} |
ID | Module Type | TypeId | RunAs |
---|---|---|---|
_F6DA1507_12AF_11D3_AB21_00A0C98620CE_ | DataSource | Microsoft.Windows.EventProvider | Default |
GenerateAlert | WriteAction | System.Health.GenerateAlert | Default |
<Rule ID="Microsoft.SQLServer.2014.Cannot_open_user_default_database._Login_failed_1_5_Rule" Target="SQL2014Core!Microsoft.SQLServer.2014.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2014ID='{4FFA6A6A-3E49-468E-8C4A-DF5029908802}';MOM2014GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="_F6DA1507_12AF_11D3_AB21_00A0C98620CE_" Comment="{F6DA1507-12AF-11D3-AB21-00A0C98620CE}" TypeID="Windows!Microsoft.Windows.EventProvider">
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<LogName>Application</LogName>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>$Target/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.DBEngine"]/ServiceName$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>4064</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="SystemHealth!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>2</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.2014.Cannot_open_user_default_database._Login_failed_1_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>