Cuando un cliente se conecta a una instancia de SQL Server sin especificar un contexto de base de datos, se usa 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.
Cuando un cliente se conecta a una instancia de SQL Server sin especificar un contexto de base de datos, se usa 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 varios grupos de Linux también definidos como inicios de sesión en SQL Server, puede que se use 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 después comprobar el conjunto de bases de datos predeterminadas de todos los grupos con el fin de ver si están todas disponibles.
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.
Cambie la cadena de conexión para que siempre se especifique una base de datos concreta.
Compruebe que la base de datos predeterminada definida para cada inicio de sesión existe y que se puede tener acceso a ella. Consulte el registro de errores de SQL Server para averiguar por qué no se puede obtener acceso a una base de datos concreta.
Use una herramienta como OSQL para especificar una base de datos concreta durante la conexión inicial. Una vez conectado, ejecute sp_defaultdb para cambiar la base de datos predeterminada para su inicio de sesión por otra base de datos a la que se pueda tener acceso.
Inicie la sesión con una cuenta que sea miembro de los roles fijos del servidor sysadmin o securityadmin y ejecute sp_defaultdb para cambiar la base de datos predeterminada del inicio de sesión con error por otra base de datos a la que se pueda tener acceso. Para obtener más información sobre las bases de datos predeterminadas, consulte "sp_defaultdb" en los Libros en pantalla y el artículo de Microsoft Knowledge Base 307864.
Nombre | Descripción | Valor predeterminado |
Habilitado | Habilita o deshabilita el flujo de trabajo. | Sí |
Intervalo (segundos) | Intervalo de tiempo periódico en segundos en que se ejecuta el flujo de trabajo. | 300 |
Prioridad | Define la prioridad de alerta. | 1 |
Gravedad | Define la gravedad de alerta. | 2 |
Hora de sincronización | Hora de sincronización |
|
Tiempo de espera (segundos) | Especifica el tiempo que el flujo de trabajo se puede ejecutar antes de cerrarlo y marcarlo como erróneo. | 200 |
Tiempo de expiración de la conexión de base de datos (segundos) | Se producirá un error en el flujo de trabajo y se registrará un evento si no puede obtener acceso a la base de datos durante el período especificado. | 15 |
Target | Microsoft.SQLServer.Linux.DBEngine | ||
Category | EventCollection | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Remotable | True | ||
Alert Message |
| ||
Comment | Mom2017ID='{4FFA6A6A-3E49-468E-8C4A-DF5029908802}';MOM2017GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74} |
ID | Module Type | TypeId | RunAs |
---|---|---|---|
_F6DA1507_12AF_11D3_AB21_00A0C98620CE_ | DataSource | Microsoft.SQLServer.Linux.DataSource.EventCollectionFiltered | Default |
GenerateAlert | WriteAction | System.Health.GenerateAlert | Default |
<Rule ID="Microsoft.SQLServer.Linux.EventRule.DBEngine.Cannot_open_user_default_database._Login_failed_1_5_Rule" Target="SqlDiscL!Microsoft.SQLServer.Linux.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2017ID='{4FFA6A6A-3E49-468E-8C4A-DF5029908802}';MOM2017GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="_F6DA1507_12AF_11D3_AB21_00A0C98620CE_" Comment="{F6DA1507-12AF-11D3-AB21-00A0C98620CE}" TypeID="Microsoft.SQLServer.Linux.DataSource.EventCollectionFiltered">
<MachineName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</MachineName>
<NetbiosComputerName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/NetbiosComputerName$</NetbiosComputerName>
<InstanceName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</InstanceName>
<ConnectionString>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/ConnectionString$</ConnectionString>
<InstanceVersion>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Version$</InstanceVersion>
<InstanceEdition>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Edition$</InstanceEdition>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>200</TimeoutSeconds>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
<EventDisplayNumber>4064</EventDisplayNumber>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="Health!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>2</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.Linux.EventRule.DBEngine.Cannot_open_user_default_database._Login_failed_1_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>Event ID: $Data/Property[@Name='EventID']$. $Data/Property[@Name='Message']$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>