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 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.
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 |
Copyright © Consultec, S.L. - Bilbao - Tel.: 902.23.66.66
[ Información legal ]
[ Privacidad de Datos ]
Siguenos en: