Когда клиент подключается к экземпляру SQL Server без указания контекста базы данных, используется база данных по умолчанию для учетной записи клиента. Если эта база данных недоступна по какой-либо причине, появляется указанное выше сообщение.
Примечание. Если данная учетная запись входа является членом одной или нескольких групп Windows, которые также определены как учетные записи входа в SQL Server, то может использоваться база данных по умолчанию для одной из таких групп. Точно определить, какая из баз данных по умолчанию будет выбрана при попытке входа, невозможно. Поэтому важно проверить членство в группе для данной учетной записи входа, а затем проверить, что для каждой из групп установлена база данных по умолчанию.
Необходимо сделать базу данных по умолчанию доступной или избегать использования этой конкретной базы данных. Доступные варианты:
Дополнительные сведения о базах данных по умолчанию см. в разделе "sp_defaultdb" электронной документации и в статьях 307864 и 196076 базы знаний Майкрософт.
Измените применяемую строку подключения и всегда указывайте конкретную базу данных.
Убедитесь, что для каждой учетной записи входа база данных по умолчанию существует и доступна. Просмотрите журнал ошибок SQL Server, чтобы определить причину недоступности конкретной базы данных.
С помощью такого средства, как OSQL, укажите конкретную базу данных во время первоначального подключения. После подключения выполните процедуру sp_defaultdb, чтобы изменить базу данных по умолчанию для своей учетной записи входа на доступную в данный момент базу данных.
Войдите с учетной записью, являющейся членом предопределенной роли сервера sysadmin или securityadmin, и выполните процедуру sp_defaultdb, чтобы изменить базу данных по умолчанию, в которую не удалось войти, на доступную базу данных. Дополнительные сведения о базах данных по умолчанию см. в разделе "sp_defaultdb" электронной документации и в статьях 307864 и 196076 базы знаний Майкрософт.
Имя | Описание | Значение по умолчанию |
Вкл. | Включает или отключает рабочий процесс. | Да |
Приоритет | Определяет приоритет предупреждения. | 1 |
Серьезность | Определяет серьезность предупреждения. | 2 |
Target | Microsoft.SQLServer.2008.DBEngine | ||
Category | EventCollection | ||
Enabled | True | ||
Event_ID | 4064 | ||
Event Source | $Target/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ServiceName$ | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Remotable | True | ||
Alert Message |
| ||
Event Log | Application | ||
Comment | Mom2008ID='{4FFA6A6A-3E49-468E-8C4A-DF5029908802}';MOM2008GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74} |
ID | Module Type | TypeId | RunAs |
---|---|---|---|
_F6DA1507_12AF_11D3_AB21_00A0C98620CE_ | DataSource | Microsoft.Windows.EventProvider | Microsoft.SQLServer.SQLDefaultAccount |
GenerateAlert | WriteAction | System.Health.GenerateAlert | Default |
<Rule ID="Microsoft.SQLServer.2008.Cannot_open_user_default_database._Login_failed_1_5_Rule" Target="SQL2008Core!Microsoft.SQLServer.2008.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2008ID='{4FFA6A6A-3E49-468E-8C4A-DF5029908802}';MOM2008GroupID={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" RunAs="SQL!Microsoft.SQLServer.SQLDefaultAccount">
<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="SQL!Microsoft.SQLServer.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.2008.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>