Когда клиент подключается к экземпляру SQL Server без указания контекста базы данных, для его входа используется база данных, заданная по умолчанию. Если база данных недоступна для какой-либо причине, появляется указанное выше сообщение.
Когда клиент подключается к экземпляру SQL Server без указания контекста базы данных, для его входа используется база данных, заданная по умолчанию. Если база данных недоступна для какой-либо причине, появляется указанное выше сообщение.
Примечание. Если данная учетная запись входа является членом одной или нескольких групп Windows, которые также определены как учетные записи входа в SQL Server, то может использоваться база данных по умолчанию для одной из таких групп. Не существует надежного способа прогнозирования того, какая из баз данных по умолчанию будет выбрана при попытке входа. Поэтому важно проверять членство в группе данной учетной записи входа, а затем набор баз данных по умолчанию для всех групп, чтобы определить доступность всех таких баз данных.
Вам нужно либо сделать доступной базу данных по умолчанию или не использовать эту конкретную базу данных. Возможные варианты:
Дополнительные сведения о базах данных по умолчанию см. в разделе sp_defaultdb электронной документации и в статье 307864 базы знаний Майкрософт.
Измените строку подключения, чтобы всегда указывать конкретную базу данных.
Убедитесь, что база данных По умолчанию определенная для каждого входа, все еще существует и доступна. Просмотрите журнал ошибок SQL Server, чтобы определить, почему конкретная база данных не доступна.
Используйте такой инструмент, как OSQL, чтобы указать конкретную базу данных при первоначальном соединении. После подключения, выполните sp_defaultdb для изменения базы данных по умолчанию для вашей учетной записи на доступную в данный момент базу данных.
Войдите с учетной записью, являющейся членом предопределенной роли сервера sysadmin или securityadmin, и выполните процедуру sp_defaultdb, чтобы изменить базу данных по умолчанию для неудачного входа на доступную базу данных. Дополнительные сведения о базах данных по умолчанию см. в разделе sp_defaultdb электронной документации и в статье 307864 базы знаний Майкрософт.
Название | Описание | Значение по умолчанию |
Включено | Включает или отключает рабочий процесс. | Да |
Приоритет | Определяет приоритет предупреждения. | 1 |
Серьезность | Определяет серьезность предупреждения. | 2 |
Target | Microsoft.SQLServer.2016.DBEngine | ||
Category | EventCollection | ||
Enabled | True | ||
Event_ID | 4064 | ||
Event Source | $Target/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.DBEngine"]/ServiceName$ | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Remotable | True | ||
Alert Message |
| ||
Event Log | Application | ||
Comment | Mom2016ID='{4FFA6A6A-3E49-468E-8C4A-DF5029908802}';MOM2016GroupID={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.2016.Cannot_open_user_default_database._Login_failed_1_5_Rule" Target="SQL2016Core!Microsoft.SQLServer.2016.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2016ID='{4FFA6A6A-3E49-468E-8C4A-DF5029908802}';MOM2016GroupID={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="SQL2016Core!Microsoft.SQLServer.2016.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.2016.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>