MSSQL 2016: no se puede abrir la base de datos predeterminada del usuario. Error de inicio de sesión

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

Cuando un cliente conecta con una instancia de SQL Server sin especificar un contexto de base de datos, se utiliza la base de datos predeterminada definida para su inicio de sesión. Si esa base de datos no está disponible por algún motivo, aparece el mensaje anterior.

Knowledge Base article:

Resumen

Cuando un cliente conecta con una instancia de SQL Server sin especificar un contexto de base de datos, se utiliza la base de datos predeterminada definida para su inicio de sesión. Si esa base de datos no está disponible por algún motivo, aparece el mensaje anterior.

Nota: si el inicio de sesión es miembro de uno o más grupos de Windows también definidos como inicios de sesión en SQL Server, puede que se utilice la base de datos predeterminada de alguno de esos grupos. No hay ninguna forma confiable de predecir cuál de las bases de datos predeterminadas se elegirá durante un intento de inicio de sesión. Por tanto, es importante comprobar la pertenencia a grupos en la cuenta de inicio de sesión y, a continuación, comprobar el conjunto de bases de datos predeterminadas para todos los grupos con el fin de ver si están todas disponibles.

Soluciones

Debe asegurarse de que la base de datos predeterminada esté disponible o evitar usar esa base de datos concreta. Existen varias opciones:

Para obtener más información sobre las bases de datos predeterminadas, vea "sp_defaultdb" en los Libros en pantalla y el artículo de Microsoft Knowledge Base 307864.

Parámetros invalidables

Nombre

Descripción

Valor predeterminado

Habilitado

Habilita o deshabilita el flujo de trabajo.

Prioridad

Define la prioridad de la alerta.

1

Gravedad

Define la gravedad de la alerta.

2

Element properties:

TargetMicrosoft.SQLServer.2016.DBEngine
CategoryEventCollection
EnabledTrue
Event_ID4064
Event Source$Target/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.DBEngine"]/ServiceName$
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
RemotableTrue
Alert Message
MSSQL 2016: no se puede abrir la base de datos predeterminada del usuario. Error de inicio de sesión
{0}
Event LogApplication
CommentMom2016ID='{4FFA6A6A-3E49-468E-8C4A-DF5029908802}';MOM2016GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}

Member Modules:

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

Source Code:

<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>