MSSQL en Windows: no se pueden usar las extensiones de ventana de dirección porque no se concedió el privilegio "bloquear páginas en la memoria"

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

La regla genera una alerta cuando SQL Server no puede usar las extensiones de ventana de dirección porque no se concedió el privilegio 'bloquear páginas en la memoria'.

Knowledge Base article:

Resumen

Se deben conceder permisos para Bloquear páginas en la memoria antes de configurar AWE para SQL Server.

Causas

La opción Bloquear páginas en la memoria está establecida en OFF de forma predeterminada en SQL Server.

Soluciones

Si dispone de permisos de administrador de sistema, puede habilitar manualmente la opción mediante la herramienta de directiva de grupo de Windows (gpedit.msc) y asignar este permiso a la cuenta que está ejecutando SQL Server.

En la consola Directiva de grupo, expanda Configuración del equipo y, a continuación, expanda Configuración de Windows.

Expanda Configuración de seguridad y, a continuación, expanda Directivas locales.

Seleccione la carpeta Asignación de derechos de usuario.

Las directivas se mostrarán en el panel de detalles.

En el panel, haga doble clic en la opción de Bloqueo de páginas en memoria.

En el cuadro de diálogo Configuración de la directiva de seguridad local, haga clic en Agregar.

En el cuadro de diálogo Seleccionar usuarios o grupos, agregue una cuenta con privilegios para ejecutar sqlservr.exe.

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.

2

Hora de sincronización

Hora de sincronización

 

Tiempo de espera (segundos)

Especifica el tiempo durante el que se puede ejecutar el flujo de trabajo antes de que se cierre y se marque como error.

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
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
RemotableTrue
Alert Message
MSSQL en Windows: no se pudieron usar las extensiones de ventana de dirección (AWE) porque no se concedió el privilegio "bloquear páginas en la memoria"
{0}
CommentMom2017ID='{D2616971-B256-4F53-A630-48D833A03F5C}';MOM2017GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}

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.AWE__Could_not_use_Address_Windowing_Extensions_because__lock_pages_in_memory__privilege_was_not_granted_5_Rule" Target="SqlDiscW!Microsoft.SQLServer.Windows.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2017ID='{D2616971-B256-4F53-A630-48D833A03F5C}';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.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>
<SqlExecTimeoutSeconds>60</SqlExecTimeoutSeconds>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>200</TimeoutSeconds>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
<EventDisplayNumber>17179</EventDisplayNumber>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="Health!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>2</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.Windows.EventRule.DBEngine.AWE__Could_not_use_Address_Windowing_Extensions_because__lock_pages_in_memory__privilege_was_not_granted_5_Rule.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>