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 Standarddatenbanken finden Sie unter "sp_defaultdb" in der Onlinedokumentation sowie im Microsoft Knowledge Base-Artikel 307864.
Ä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, das Mitglied der festen Serverrolle sysadmin oder securityadmin ist, und führen Sie sp_defaultdb aus, um die Standarddatenbank für die fehlerhafte Anmeldung in eine Datenbank zu ändern, auf die zugegriffen werden kann. Weitere Informationen zu Standarddatenbanken finden Sie in der Onlinedokumentation unter "sp_defaultdb" sowie im Microsoft Knowledge Base-Artikel 307864.
Name | Beschreibung | Standardwert |
Aktiviert | Aktiviert oder deaktiviert den Workflow. | Ja |
Priorität | Definiert die Warnungspriorität. | 1 |
Schweregrad | Definiert den Warnungsschweregrad. | 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>Event ID: $Data/EventDisplayNumber$. $Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>