Académique Documents
Professionnel Documents
Culture Documents
Cuál es el correcto para usted depende de su ambiente, lo que necesita auditar, dónde
quiere almacenar las acciones capturadas y la forma que quiere que tengan los reportes.
Auditoría manual
Las bases de datos SQL Server pueden ser auditadas usando procedimientos
almacenados especialmente desarrollados y funciones para rastrear cambios en los datos
y los objetos. Provee una solución flexible que requiere una gran cantidad de código y
desarrollo, lo cual incrementa el costo y el tiempo de implementación.
Usted puede ver todas las acciones que pueden ser auditadas usando SQL Server
Auditing en la lista desplegable para Audit Action Type
Los Principales que usted debe seleccionar en este diálogo son realmente cuentas de
usuario que serán monitoreadas.
Al igual que las auditorías, las especificaciones de auditoría de bases de datos están
deshabilitadas por defecto. Para habilitarlas, seleccione esta opción en su menú
contextual.
SELECT event_time,action_id,statement,database_name,server_principal_n
ame FROM fn_get_audit_file( 'E:\Test\Audit-*.sqlaudit' , DEFAULT , DEF
AULT);
Incluso cuando usted selecciona todas las columnas, usted no verá qué fue eliminado
realmente, sólo cuándo y quién realizó la eliminación, lo cual es una de las desventajas
de este método.
Otros inconvenientes son:
• Como SQL Server Audit usa recursos de SQL Server para una auditoría detallada,
esto puede afectar el rendimiento general de SQL Server
• Administrar SQL Server Audit en instancias SQL Server múltiples no puede ser
centralizado por defecto
• Analizar y archivar los datos de auditoría (en un archivo, o en registros) involucra
importación, reportes y archivado manuales
• Está disponible sólo en versiones de SQL Server 2008 y posteriores
• La auditoría a nivel de base de datos está disponible sólo en las ediciones Enterprise,
Developer y Evaluation
Antes de que tales desencadenadores sean creados, usted debería diseñar y crear la(s)
tabla(s) donde el DML será almacenado.
Este método es proclive a errores, ya que hay mucho trabajo manual involucrado.
ApexSQL Trigger es una herramienta de auditoría de bases de dato que captura
cambios en los datos que han ocurrido en una base de datos, incluyendo la información
acerca de quién hizo el cambio, qué objetos fueron afectado por él, cuándo fue hecho así
como la información del login de SQL, la aplicación y el anfitrión usados para hacer el
cambio. Almacena toda la información capturada en el repositorio central y la exporta
en formatos amigables para imprimir. Para crear desencadenadores, simplemente
seleccione las tablas y los tipos de operación que desea auditar.
1. Inicie ApexSQL Trigger
2. Conéctese a la base de datos que desea auditar
6. Repita los pasos del 3 al 5 para todas las tablas que desea auditar
7. En el menú, haga clic en Create triggers
8. El script que genera los desencadenadores especificados es mostrado en el diálogo
Script. Verifíquelo y presione F5 para ejecutarlo
Una vez que los desencadenadores son creados, serán ejecutados por cada INSERT,
DELETE y UPDATE ejecutados contra la tabla y los detalles de la operación son
almacenados en las tablas AUDIT_LOG_DATA y AUDIT_LOG_TRANSACTIONS.
Usted puede verlos fácilmente usando los reportes incorporados de ApexSQL Trigger,
o creando consultas SQL propias.
3. En el paso Select SQL logs to analyze, añada las copias de seguridad de registros de
transacciones y los registros de transacciones sueltos que quiere leer. Note que ellos
deben formar una cadena completa para proveer una auditoría exitosa
4. Use las opciones de Filter setup para reducir el conjunto de resultados usando el
tiempo el tipo de operación, el nombre de la tabla, el usuario y otras opciones de
filtrado
Las ventajas de este método son que no hay desencadenadores y tampoco procesos
adicionales para capturar la información de auditoría que puede afectar el desempeño de
SQL Server. El historial de transacciones puede ser obtenido para el periodo antes de
que la herramienta fuera instalada, a diferencia de los desencadenadores y Extended
Events.
Las desventajas son:
• Más espacio es requerido para suficientes fuentes de datos, ya que una base de datos
tiene que estar en un modelo de recuperación completo, y una cadena completa de
registros de transacciones debe existir
• No todas las acciones que un usuario quiera auditar son almacenadas en un registro
de transacciones. Por ejemplo, las sentencias SELECT ejecutadas y las consultas no
son almacenadas ahí
Usar SQL Server Profiler y traces de SQL Server
Usar SQl Server Profiler y traces de SQl Server para auditar es una solución muy
compleja con mucho trabajo manual, y por lo tanto proclive a errores.
ApexSQL Audit es una herramienta de auditoría construida sobre traces de SQL Server,
lo que provee información de “quién vio qué”, una auditoría con tolerancia a fallos,
reporte centralizado, una GUI amigable para el usuario para configurar la auditoría en
más de 230 operaciones, y un repositorio centralizado para almacenar registros de
auditoría y configuraciones. La herramienta configura los traces de acuerdo a la
configuración que un usuario ha especificado, o usa su configuración por defecto que
cubre las solicitudes más comunes de auditoría.
1. Inicie ApexSQL Audit
2. Haga clic en el botón ‘Add server’ para seleccionar un servidor para la auditoría
MSc. Ing. Wilfredo M. Trejo F.
15
ISI – ADMINISTRACIÓN DE BASE DE DATOS SEMESTRE 2019-I
3. Haga clic en el botón ‘Add database’ para seleccionar una base de datos para la
auditoría, y seleccione el servidor o base de datos que desea auditar
Ahora, cuando sea que cualquier operación que usted seleccionó es realizada en el SQL
Server auditado, un registro será guardado en la base de datos del repositorio central –
ApexSQLCrd.
Para ver los registros de auditoría, usted puede un reporte local integrado, o usar la
funcionalidad de reportes web.
MSc. Ing. Wilfredo M. Trejo F.
16
ISI – ADMINISTRACIÓN DE BASE DE DATOS SEMESTRE 2019-I
Una solución
Escritura de de auditoría
código específica se
Desarrollo necesita y
Auditoría manual Flexibilidad ninguna
Costo
Larga herramienta
Para las
Flexibilidad
No registros ediciones
Un gran número
Auditoría de SQL eliminados, Enterprise,
de tipos de
Server insertados o Developer o
acciones
actualizados Evaluation
auditadas
de SQL
No todas las
Es proclive a tablas y
Fácil de errores cuando los operaciones
configurar desencadenadores DML
Puede rastrear y el repositorio necesitan ser
Usar una transacción son creados auditadas;
desencadenadores específica para manualmente los datos
de SQL Server sólo tablas Puede causar un auditados
específicas costo extra en una necesitan ser
Almacenamiento base de datos de de fáciles
flexible transacciones acceso y
altas consulta
Un amplio
rango de
acciones de
bases de
datos SQL
Server debe
ser auditado.
Complejo y Se
Usar SQL Server Flexible
proclive a errores recomienda
Profiler y traces Ya disponible en
cuando se usa tener una
de SQL Server SQL Server
manualmente herramienta
diseñada
para leer
traces, filtrar
resultados y
generar
reportes
Como se presentó anteriormente, hay muchas técnicas de auditoría SQL Server que
utilizan diferentes características de SQL Server. Desde código manualmente escrito y
por tanto proclive a errores, hasta un GUI amigable para el usuario. Algunas de ellas
pueden causar un costo extra y problemas de Desempeño en SQL Server, mientras que
otras no tienen casi ningún efecto. Determine qué tipo de operaciones necesita auditar y
MSc. Ing. Wilfredo M. Trejo F.
19
ISI – ADMINISTRACIÓN DE BASE DE DATOS SEMESTRE 2019-I
Ejercicio:
1. Realizar la auditoria a una base de datos relacional implementada en SQL Server,
con cualquiera de las herramientas que SQL Server nos ofrece.
2. Documentar y presentar todo el proceso de auditoría desarrollado en el ejercicio 1.