Невозможно открыть пользовательскую базу данных по умолчанию. Ошибка входа

Microsoft.SQLServer.2008.Cannot_open_user_default_database._Login_failed_1_5_Rule (Rule)

Knowledge Base article:

Сводка

Когда клиент подключается к экземпляру SQL Server без указания контекста базы данных, используется база данных По умолчанию определенная для учетной записи входа клиента. Описанное выше сообщение появляется, если эта база данных недоступна по какой-либо причине.

Примечание. Если данная учетная запись входа является членом одной или нескольких групп Windows, которые также определены как учетные записи входа в SQL Server, то может использоваться база данных по умолчанию для одной из таких групп. Не существует надежного способа прогнозирования того, какая из баз данных по умолчанию будет выбрана при попытке входа. Поэтому важно проверять членство в группе данной учетной записи входа, а затем набор баз данных по умолчанию для всех групп, чтобы определить доступность всех таких баз данных.

Решения

Необходимо сделать базу данных по умолчанию доступной или избегать использования конкретной базы данных. Доступные варианты:

Дополнительные сведения о базах данных по умолчанию см. в разделе "sp_defaultdb" электронной документации и в статьях 307864 и 196076 базы знаний Майкрософт.

Element properties:

TargetMicrosoft.SQLServer.2008.DBEngine
CategoryEventCollection
EnabledTrue
Event_ID4064
Event Source$Target/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ServiceName$
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
RemotableTrue
Alert Message
Невозможно открыть пользовательскую базу данных по умолчанию. Ошибка входа
{0}
Event LogApplication
CommentMom2008ID='{4FFA6A6A-3E49-468E-8C4A-DF5029908802}';MOM2008GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}

Member Modules:

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

Source Code:

<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>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>