ALTER SERVER AUDIT (Transact-SQL)

Modifica un objeto de auditoría de servidor mediante la característica SQL Server Audit. Para obtener más información, vea SQL Server Audit (motor de base de datos).

Icono de vínculo a temas Convenciones de sintaxis de Transact-SQL

Sintaxis

ALTER SERVER AUDIT audit_name
{
    [ TO { { FILE ( <file_options> [, ...n] ) } | APPLICATION_LOG | SECURITY_LOG } ]
    [ WITH ( <audit_options> [ , ...n] ) ] 
    [ WHERE <predicate_expression> ]
}
| REMOVE WHERE
| MODIFY NAME = new_audit_name
[ ; ]

<file_options>::=
{
      FILEPATH = 'os_file_path' 
    | MAXSIZE = { max_size { MB | GB | TB } | UNLIMITED } 
    | MAX_ROLLOVER_FILES = { integer | UNLIMITED } 
    | MAX_FILES = integer 
    | RESERVE_DISK_SPACE = { ON | OFF } 
}

<audit_options>::=
{
      QUEUE_DELAY = integer 
    | ON_FAILURE = { CONTINUE | SHUTDOWN | FAIL_OPERATION } 
    | STATE = = { ON | OFF } 
}

<predicate_expression>::=
{
    [NOT ] <predicate_factor> 
    [ { AND | OR } [NOT ] { <predicate_factor> } ] 
    [,...n ]
}

<predicate_factor>::= 
    event_field_name { = | < > | ! = | > | > = | < | < = } { number | ' string ' }

Argumentos

  • TO { FILE | APPLICATION_LOG | SECURITY }
    Determina la ubicación del destino de la auditoría. Las opciones son un archivo binario, el registro de la aplicación Windows o el registro de seguridad de Windows.

  • FILEPATH = 'os_file_path'
    La ruta de acceso de la pista de auditoría. El nombre de archivo se genera en función del nombre de la auditoría y del GUID de la auditoría.

  • MAXSIZE **=**max_size
    Especifica el tamaño máximo que puede alcanzar el archivo de auditoría. El valor de max_size debe ser un entero seguido de MB, GB o TB, o bien UNLIMITED. El tamaño mínimo que puede especificarse para max_size es 2 MB y el máximo es 2.147.483.647 TB. Si se especifica UNLIMITED, el archivo crecerá hasta que se llene el disco. Si se especifica un valor inferior a 2 MB, se producirá el error MSG_MAXSIZE_TOO_SMALL. El valor predeterminado es UNLIMITED.

  • MAX_ROLLOVER_FILES **=**integer | UNLIMITED
    Especifica el número máximo de archivos que se deben conservar en el sistema de archivos. Si se establece MAX_ROLLOVER_FILES=0, no se impone ningún límite en cuanto al número de archivos de sustitución incremental que se crearán. El valor predeterminado es 0. El número máximo de archivos que se pueden especificar es 2.147.483.647.

  • MAX_FILES =integer
    Especifica el número máximo de archivos de auditoría que pueden crearse. No realiza la sustitución incremental al primer archivo cuando se alcanza el límite. Cuando se alcanza el límite de MAX_FILES, cualquier acción que ocasione la generación de eventos de auditoría adicionales producirá un error y se mostrará un mensaje.

  • RESERVE_DISK_SPACE = { ON | OFF }
    Esta opción preasigna el archivo en el disco al valor de MAXSIZE. Solo se aplica si MAXSIZE no es igual a UNLIMITED. El valor predeterminado es OFF.

  • QUEUE_DELAY **=**integer
    Determina el tiempo, en milisegundos, que puede transcurrir antes de exigir que se procesen las acciones de auditoría. El valor 0 indica la entrega sincrónica. El valor mínimo que puede establecerse para la cola es 1000 (1 segundo), que es el valor predeterminado. El máximo es 2.147.483.647 (2.147.483,647 segundos, o 24 días, 20 horas, 31 minutos y 23,647 segundos). Si se especifica un número no válido, se producirá el error MSG_INVALID_QUEUE_DELAY.

  • ON_FAILURE = { CONTINUE | SHUTDOWN | FAIL_OPERATION}
    Indica si la escritura de la instancia en el destino se debe suspender, continuar o detener si SQL Server no puede escribir en el registro de auditoría.

    • CONTINUE
      Las operaciones de SQL Server continúan. Los registros de auditoría no se conservan. La auditoría continúa intentando el registro de eventos y se reanudará si se resuelve la condición de error. La selección de la opción CONTINUE puede permitir que una actividad no se audite, con lo que se infringirían las directivas de seguridad. Utilice esta opción cuando la operación de continuación del Motor de base de datos sea más importante que el mantenimiento de una auditoría completa.

    • SHUTDOWN
      Fuerza el apagado del servidor cuando la instancia de servidor que escribe en el destino no puede escribir datos en el destino de la auditoría. Para poder usarlo, es preciso utilizar un inicio de sesión con el permiso SHUTDOWN. Si el inicio de sesión no tiene dicho permiso, la función generará un error y se mostrará un mensaje de error. No se producirán eventos auditados. Utilice la opción si un error de auditoría puede poner en peligro la seguridad o la integridad del sistema.

    • FAIL_OPERATION
      Las acciones de base de datos producen un error si generan eventos auditados. Las acciones que no generan eventos auditados pueden continuar, pero no pueden producirse eventos auditados. La auditoría continúa intentando el registro de eventos y se reanudará si se resuelve la condición de error. Utilice esta opción si el mantenimiento de una auditoría completa es más importante que el acceso total al Motor de base de datos.

  • STATE = { ON | OFF }
    Habilita o deshabilita la recopilación de registros en la auditoría. El cambio de estado de una auditoría que se está ejecutando (de ON a OFF) crea una entrada de auditoría que incluye la auditoría detenida, la entidad de seguridad que la ha detenido y la hora en la que se ha detenido.

  • MODIFY NAME = new_audit_name
    Cambia el nombre de la auditoría. No se puede usar con ninguna otra opción.

  • predicate_expression
    Especifica la expresión de predicado usada para determinar si debe procesarse o no un evento. Las expresiones de predicado se limitan a 3.000 caracteres, lo que limita los argumentos de cadena.

  • event_field_name
    Es el nombre del campo de evento que identifica el origen del predicado. Los campos de auditoría se describen en sys.fn_get_audit_file (Transact-SQL). Todos los campos pueden auditarse excepto file_name y audit_file_offset.

  • number
    Es cualquier tipo numérico, incluido el tipo decimal. Las limitaciones son la falta de memoria física disponible o un número demasiado grande para ser representado como un entero de 64 bits.

  • ' string '
    Una cadena ANSI o Unicode según lo requerido por la comparación de predicado. No se realiza ninguna conversión implícita de tipos de cadena para las funciones de comparación de predicado. Si se pasa el tipo incorrecto se producirá un error.

Comentarios

Se debe especificar al menos una de las cláusulas TO, WITH o MODIFY NAME al llamar a ALTER AUDIT.

Para poder realizar cambios en una auditoría, es necesario establecer su estado en OFF. Si se habilita una auditoría con opciones distintas de STATE=OFF y se ejecuta ALTER AUDIT, aparecerá un mensaje de error de MSG_NEED_AUDIT_DISABLED.

Es posible agregar, modificar o quitar especificaciones de auditoría sin detener la auditoría.

Sin embargo, no se puede cambiar el GUID de una auditoría una vez creada ésta.

Permisos

Para crear, modificar o quitar una entidad de seguridad de auditoría de servidor, se deben tener los permisos ALTER ANY SERVER AUDIT o CONTROL SERVER.

Ejemplos

A.Cambiar el nombre de una auditoría de servidor

En el ejemplo siguiente se cambia el nombre de la auditoría de servidor HIPPA_Audit a HIPAA_Audit_Old.

USE master
GO
ALTER SERVER AUDIT HIPAA_Audit
WITH (STATE = OFF);
GO
ALTER SERVER AUDIT HIPAA_Audit
MODIFY NAME = HIPAA_Audit_Old;
GO
ALTER SERVER AUDIT HIPAA_Audit_Old
WITH (STATE = ON);
GO

B.Cambiar el destino de una auditoría de servidor

En el ejemplo siguiente se cambia la auditoría de servidor denominada HIPPA_Audit a un destino de archivo.

USE master
GO
ALTER SERVER AUDIT HIPAA_Audit
WITH (STATE = OFF);
GO
ALTER SERVER AUDIT HIPAA_Audit
TO FILE (FILEPATH ='\\SQLPROD_1\Audit\',
          MAXSIZE = 1000 MB,
          RESERVE_DISK_SPACE=OFF)
WITH (QUEUE_DELAY = 1000,
       ON_FAILURE = CONTINUE);
GO
ALTER SERVER AUDIT HIPAA_Audit
WITH (STATE = ON);
GO

C.Cambiar una cláusula WHERE de auditoría de servidor

En el ejemplo siguiente se modifica la cláusula WHERE creada en el ejemplo C de CREATE SERVER AUDIT (Transact-SQL). La nueva cláusula WHERE filtra por el evento definido por el usuario si es 27.

ALTER SERVER AUDIT [FilterForSensitiveData] WITH (STATE = OFF)
GO
ALTER SERVER AUDIT [FilterForSensitiveData]
WHERE user_defined_event_id = 27;
GO
ALTER SERVER AUDIT [FilterForSensitiveData] WITH (STATE = ON);
GO

D.Quitar una cláusula WHERE

En el ejemplo siguiente se quita una expresión de predicado de cláusula WHERE.

ALTER SERVER AUDIT [FilterForSensitiveData] WITH (STATE = OFF)
GO
ALTER SERVER AUDIT [FilterForSensitiveData]
REMOVE WHERE;
GO
ALTER SERVER AUDIT [FilterForSensitiveData] WITH (STATE = ON);
GO

E.Cambiar el nombre de una auditoría de servidor

En el ejemplo siguiente se cambia el nombre de la auditoría de servidor de FilterForSensitiveData a AuditDataAccess.

ALTER SERVER AUDIT [FilterForSensitiveData] WITH (STATE = OFF)
GO
ALTER SERVER AUDIT [FilterForSensitiveData]
MODIFY NAME = AuditDataAccess;
GO
ALTER SERVER AUDIT [AuditDataAccess] WITH (STATE = ON);
GO

Vea también

Referencia

DROP SERVER AUDIT (Transact-SQL)

CREATE SERVER AUDIT SPECIFICATION (Transact-SQL)

ALTER SERVER AUDIT SPECIFICATION (Transact-SQL)

DROP SERVER AUDIT SPECIFICATION (Transact-SQL)

CREATE DATABASE AUDIT SPECIFICATION (Transact-SQL)

ALTER DATABASE AUDIT SPECIFICATION (Transact-SQL)

DROP DATABASE AUDIT SPECIFICATION (Transact-SQL)

ALTER AUTHORIZATION (Transact-SQL)

sys.fn_get_audit_file (Transact-SQL)

sys.server_audits (Transact-SQL)

sys.server_file_audits (Transact-SQL)

sys.server_audit_specifications (Transact-SQL)

sys.server_audit_specification_details (Transact-SQL)

sys.database_audit_specifications (Transact-SQL)

sys.database_audit_specification_details (Transact-SQL)

sys.dm_server_audit_status (Transact-SQL)

sys.dm_audit_actions (Transact-SQL)

Conceptos

Crear una auditoría de servidor y una especificación de auditoría de servidor