MSSQL en Windows: error de inicio de sesión

Microsoft.SQLServer.Windows.EventRule.DBEngine.Login_failed__Account (Rule)

Cuando se rechaza un intento de conexión debido a un error de autenticación que implique una contraseña o un nombre de usuario incorrectos, se devuelve un mensaje similar al siguiente al cliente: "Error de inicio de sesión del usuario "nombre_usuario". (Microsoft SQL Server, Error: 18456)".

Knowledge Base article:

Resumen

Cuando se rechaza un intento de conexión debido a un error de autenticación que implique una contraseña o un nombre de usuario incorrectos, se devuelve un mensaje similar al siguiente al cliente: "Error de inicio de sesión del usuario "nombre_usuario". (Microsoft SQL Server, Error: 18456)".

Causas

Para aumentar la seguridad, el mensaje de error que se devuelve al cliente oculta deliberadamente la naturaleza del error de autenticación. Sin embargo, en el registro de errores de SQL Server, un error correspondiente contiene un estado de error que se asigna a una condición de error de autenticación. Compare el estado de error con la lista siguiente para determinar el motivo del error de inicio de sesión.

Estado

Descripción

1

Información de error no disponible. Este estado suele significar que no tiene permiso para recibir los detalles del error. Para obtener más información, póngase en contacto con el administrador de SQL Server.

2

El id. de usuario no es válido.

5

El id. de usuario no es válido.

6

Se ha intentado usar un nombre de inicio de sesión de Windows con la autenticación de SQL Server.

7

El inicio de sesión está deshabilitado y la contraseña es incorrecta.

8

La contraseña es incorrecta.

9

La contraseña no es válida.

11

El inicio de sesión es válido, pero no se pudo obtener acceso al servidor. Una posible causa de este error es cuando el usuario de Windows tiene acceso a SQL Server como miembro del grupo de administradores locales, pero Windows no proporciona las credenciales de administrador. Para conectarse, inicie el programa de conexión mediante la opción Ejecutar como administrador y después agregue el usuario de Windows a SQL Server como inicio de sesión específico.

12

El inicio de sesión es válido, pero no se pudo obtener acceso al servidor.

18

Es necesario cambiar la contraseña.

Existen otros estados de error que indican un error de procesamiento interno inesperado.

Resoluciones

Parámetros invalidables

Nombre

Descripción

Valor predeterminado

Habilitado

Habilita o deshabilita el flujo de trabajo.

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.

1

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

Element properties:

TargetMicrosoft.SQLServer.Windows.DBEngine
CategoryEventCollection
EnabledFalse
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableTrue
Alert Message
MSSQL en Windows: error de inicio de sesión
{0}

Member Modules:

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

Source Code:

<Rule ID="Microsoft.SQLServer.Windows.EventRule.DBEngine.Login_failed__Account" Target="SqlDiscW!Microsoft.SQLServer.Windows.DBEngine" Enabled="false" ConfirmDelivery="true" Remotable="true">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="_F6DA1507_12AF_11D3_AB21_00A0C98620CE_" TypeID="Microsoft.SQLServer.Windows.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>
<MonitoringType>$Target/Property[Type="SqlDiscW!Microsoft.SQLServer.Windows.DBEngine"]/MonitoringType$</MonitoringType>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>200</TimeoutSeconds>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
<EventDisplayNumber>18456</EventDisplayNumber>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="Health!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>1</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.Windows.EventRule.DBEngine.Login_failed__Account.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</AlertParameter1>
<AlertParameter2>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</AlertParameter2>
<AlertParameter3>Event ID: $Data/Property[@Name='EventID']$. $Data/Property[@Name='Message']$</AlertParameter3>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>