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 os artigos 307864 e 196076 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 os tópicos nos Manuais Online sobre "sp_defaultdb" e os artigos 307864 e 196076 da Base de Dados de Conhecimento Microsoft.
Target | Microsoft.SQLServer.2005.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 | Mom2005ID='{4FFA6A6A-3E49-468E-8C4A-DF5029908802}';MOM2005GroupID={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.2005.Cannot_open_user_default_database._Login_failed_1_5_Rule" Target="SQL2005Core!Microsoft.SQLServer.2005.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2005ID='{4FFA6A6A-3E49-468E-8C4A-DF5029908802}';MOM2005GroupID={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.2005.Cannot_open_user_default_database._Login_failed_1_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>