Logo Consultec Formación - Innovación
IT Training Leader
 
Microsoft SQL Server 2008

Auditar SQL Server 2008

En versiones anteriores de SQL Server, dispone una variedad de herramientas para auditar acciones realizadas contra el servidor de SQL Server.

En la siguiente tabla se le muestra las distintas técnicas utilizadas hasta ahora con sus ventajas e inconvenientes:

Técnica Ventajas Desventajas
Auditoría C2 Captura casi todos los eventos a disco Disminuye el rendimiento del servidor
DML Triggers Controla INSERT DELETE UPDATE Habría que crearlo en cada tabla
Penaliza el rendimiento
DDL Triggers Controlan cambios en la definición de objetos Se generan por código.
No todos los eventos están disponibles
Trazas del Profiler Captura muchos tipos de eventos Limitaciones con los filtros
Si se detiene el servicio, se detiene la traza

Algunos ejemplos de que técnica se usaría para cada caso, son los siguientes:

  • Como controlo quien cambia la definición de una tabla: DDL Trigger
  • Como se quien realiza cada INSERT en una tabla: DML Trigger
  • Como puedo saber las consultas que realiza un usuario en una base de datos: SQL Profiler con filtros

Como puede deducir, al final debería usar una combinación de distintas técnicas para tener bien auditado su servidor, lo cual eleva la carga administrativa sustancialmente.

En SQL Server 2008, la auditoría va más allá. Gráficamente, podrá recoger cualquier evento que ocurra en el servidor o en una base de datos en concreto agregando los filtros que necesite con una única herramienta: La auditoría.

Pasos para la creación de una auditoría en SQL Server 2008

El primer paso para auditar SQL Server 2008 es crear el objeto auditoría. Para ello acceda al nodo Seguridad del servidor y haga clic con el botón derecho en Auditoría para crear el objeto auditoría.

El objeto auditoría le dará la posibilidad de almacenar la información recogida en archivo, el registro de seguridad del visor de sucesos de Windows o en el registro de aplicación de Windows. Si selecciona a fichero, deberá darle solo la ruta de la carpeta donde se almacenará el archivo de auditoría.

Una vez creado el objeto auditoría, ahora debe pensar si lo que quiere auditar es un evento de servidor, como puede ser el evento conexiones fallidas, o un evento de base de datos como puede ser las consultas que realiza un usuario en concreto sobre una tabla en concreto.

Si lo que desea auditar es un evento de servidor, acceda al nodo Seguridad del servidor y cree una nueva especificación de auditoría de servidor. Si el evento es de base de datos, acceda al nodo seguridad de la base de datos correspondiente, acceda al nodo seguridad y cree una nueva especificación de auditoría de base de datos. Establezca un nombre y seleccione el objeto auditoría creado en el paso anterior, que será donde se almacena la información relacionada a la especificación de auditoría que está creando en este momento.

El siguiente paso es seleccionar el evento deseado y aplicar los filtros necesarios. En este caso, deseamos controlar las consultas realizadas sobre la tabla de Sales.SalesOrderHeader realizadas por el usuario consultec, así que se selecciona el evento SELECT sobre la clase de objeto OBJECT, el nombre de objeto SALES.SALESORDERHEADER y el nombre de principal CONSULTEC.

Las posibilidades que le dan los filtros son inmensas para así poder capturar única y exclusivamente lo que desea.

Una vez creada la especificación de auditoría de base de datos, habilite tanto la especificación como el objeto auditoría. Una vez habilitadas, cada vez que el usuario consultec realice una consulta sobre la tabla, se registrará en el objeto auditoría.

Dependiendo donde haya almacenado el objeto auditoría (log seguridad, log aplicación o archivo), también podrá verlo desde otra parte, no solo desde el historial del objeto auditoría. Por ejemplo, en el caso anterior, al ser almacenado a archivo, puede usar la función sys.fn_get_audit_file para atacar al archivo auditoría que se ha generado en el directorio.

select event_time as fechaevento,statement as consulta
from sys.fn_get_audit_file ('c:\datos\*',DEFAULT,DEFAULT)
where action_id='SL'

fechaevento consulta
2009-02-25 10:12:52.9483448 select * from sales.SalesOrderHeader

Arriba

Copyright © Consultec, S.L. - Bilbao - Tel.: 902.23.66.66
[ Información legal ] [ Privacidad de Datos ]

Siguenos en: