Quando um cliente se conecta a uma instância do SQL Server sem especificar um contexto de banco de dados, é usado o banco de dados padrão definido para seu logon. Se esse banco de dados não estiver disponível por qualquer motivo, será exibida a mensagem acima.
Quando um cliente se conecta a uma instância do SQL Server sem especificar um contexto de banco de dados, é usado o banco de dados padrão definido para seu logon. Se esse banco de dados não estiver disponível por qualquer motivo, será exibida a mensagem acima.
Observação: se o logon for membro de um ou mais grupos do Windows também definidos como logons no SQL Server, o banco de dados padrão de um desses grupos poderá ser usado. Não há um modo confiável para prever qual dos bancos de dados padrão será escolhido durante uma tentativa de logon. Portanto, é importante verificar a associação de grupo da conta do logon e verificar o banco de dados padrão definido para todos os grupos, para saber se estão disponíveis.
É necessário tornar o banco de dados padrão acessível ou evitar o uso desse banco de dados. As opções são:
Para obter mais informações sobre bancos de dados padrão, consulte os tópicos nos Manuais Online sobre "sp_defaultdb" e o artigo 307864 da Base de Dados de Conhecimento Microsoft.
Altere sua cadeia de caracteres de conexão para sempre especificar um banco de dados específico.
Verifique se o banco de dados padrão definido para cada logon ainda existe e está acessível. Analise o log de erros do SQL Server para tentar descobrir por que um banco de dados específico não está acessível.
Use uma ferramenta como o OSQL para especificar um banco de dados durante a conexão inicial. Quando você estiver conectado, execute sp_defaultdb para alterar o banco de dados padrão do logon para um banco de dados que possa ser acessado no momento.
Faça logon com uma conta que seja membro das funções fixas de servidor sysadmin ou securityadmin, e execute sp_defaultdb para alterar o banco de dados padrão do logon que falhou para um banco de dados acessível. Para obter mais informações sobre bancos de dados padrão, consulte "sp_defaultdb" nos Manuais Online e o artigo 307864 da Base de Dados de Conhecimento Microsoft.
Nome | Descrição | Valor padrão |
Habilitado | Habilita ou desabilita o fluxo de trabalho. | Sim |
Prioridade | Define a Prioridade do Alerta. | 1 |
Gravidade | Define a Severidade do Alerta. | 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>