Sunteți pe pagina 1din 24

Curso : Administracin de SQL

Tema: Auditoria en SQL Server

UNIVERSIDAD SEOR DE SIPAN


FACULTAD DE INGENIERIA, ARQUITECTURA Y URBANISMO
EAP DE INGENIERIA DE SISTEMAS
TRABAJO N : 2
TEMA: Auditoria

en SQL Server

CURSO :

Administracin de Base de Datos

CICLO / SEMESTRE

VI / 2014-2

FECHA DE ENTREGA:

23/05/2015

AUTORES

(Grupo Nro 2)

REVISADO POR :

ING. ANTONIO P. SANDOVAL LARRAIN

BERNAL LEYVA ALEX YURI


CHUZN SANCHEZ WALTER
GUEVARA CABRERA KEVIN ALEHEXIS
VASQUEZ VILLALOBOS HENRY JOEL

RESUMEN
El trabajo nos quiere entender que la Seguridad en las Auditorias permite a los administradores
implementar una estrategia de defensa optimizada para los riesgos de seguridad especficos de su
entorno.

1.

SQL Server Audit.......................................................................................... 3


1.1.

Implementacin de SQL Server. Audit..........................................................3

1.2.

Especificacin de auditora de servidor.........................................................3

1.3.

Especificacin de auditora de base de datos...................................................4

Grupo Nro : Grupo 1

Pg. 1

Curso : Administracin de SQL

Tema: Auditoria en SQL Server

1.4.

Destino................................................................................................ 4

1.5.

Registros y tablas de auditora de base de datos...................................................4

1.6.

Registros de auditora de sistema de archivos.....................................................4

1.7.1.

Crear una auditoria de Servidor..................................................5

1.7.2.

ALTER SERVER AUDIT..................................................................5

1.7.3.

DROP SERVER AUDIT...................................................................6

1.7.4.

CREATE SERVER AUDIT SPECIFICATION.......................................6

1.7.5.

ALTER SERVER AUDIT SPECIFICATION..........................................6

1.7.6.

DROP SERVER AUDIT SPECIFICATION..........................................7

1.7.7. CREAR UNA ESPECIFICACIN DE AUDITORA DE NIVEL DE BASE


DE DATOS................................................................................................. 7
1.7.8.

ALTER DATABASE AUDIT SPECIFICATION......................................7

1.7.9.

DROP DATABASE AUDIT SPECIFICATION......................................8

1.7.10. Cmo ver un registro de auditora...............................................8


2.

CREACIN DE AUDITORIA........................................................................11

3.

Crear Audit de Servidor SQL.......................................................................13

4.

Uso de Triggers para auditar bases de datos....................................................16

5.

4.1.

Triggers:............................................................................................. 16

4.2.

Auditora............................................................................................ 16

BIBLIOGRAFIA....................................................................................... 22

Grupo Nro : Grupo 1

Pg. 2

Curso : Administracin de SQL

Tema: Auditoria en SQL Server

1. SQL Server Audit


El objeto SQL Server Audit recopila una nica instancia de acciones y grupos de acciones de la
base de datos para su supervisin. La auditora se realiza en el nivel de instancia de SQL
Server. Es posible tener varias auditoras por cada instancia de SQL Server.
Cuando se define una auditora, se especifica la ubicacin para los resultados generados. ste es
el destino de la auditora. La auditora se crea en un estado deshabilitado y no audita
automticamente ninguna accin. Una vez habilitada la auditora, el destino de la auditora
recibe los datos de la misma.

1.1.

Implementacin de SQL Server. Audit.

La auditora de SQL Server permite crear auditoras de servidor, que pueden contener
especificaciones de auditora de servidor para los eventos de servidor, y especificaciones de
auditora de base de datos para los eventos de base de datos.
Hay varios niveles de auditora disponibles para SQL Server, dependiendo de los requisitos
normativos de cada instalacin. SQL Server Audit proporciona las herramientas y los procesos
necesarios para habilitar, almacenar y ver auditoras en varios objetos de servidor y de base de
datos.
Puede registrar grupos de acciones de auditora en el servidor por instancia, as como grupos de
acciones o acciones de auditora en la base de datos por base de datos. El evento de auditora se
producir cada vez que se encuentre la accin auditable.

1.2.

Especificacin de auditora de servidor

El objeto Especificacin de auditora de servidor pertenece a una auditora. Puede crear una
especificacin de auditora de servidor por cada auditora, ya que ambos se crean en el mbito
de la instancia de SQL Server.
La especificacin de auditora de servidor recopila muchos grupos de acciones de nivel de
servidor generados por la caracterstica Extended Events. Puede incluir grupos de acciones de
auditora en una especificacin de auditora de servidor. Los grupos de acciones de auditora son
Grupo Nro : Grupo 1

Pg. 3

Curso : Administracin de SQL

Tema: Auditoria en SQL Server

grupos predefinidos de acciones, que constituyen eventos atmicos que tienen lugar en el Motor
de base de datos. Estas acciones se envan a la auditora, que las registra en el destino.

1.3.

Especificacin de auditora de base de datos

El objeto Especificacin de auditora de base de datos tambin pertenece a una auditora de SQL
Server. Puede crear una nica especificacin de auditora de base de datos para cada base de
datos de SQL Server y cada auditora.
La especificacin de auditora de base de datos recopila acciones de auditora de nivel de base
de datos generadas por la caracterstica Extended Events. Puede agregar grupos de acciones de
auditora o eventos de auditora a una especificacin de auditora de base de datos. Los eventos
de auditora son las acciones atmicas que puede auditar el motor de SQL Server. Los grupos de
acciones de auditora son grupos predefinidos de acciones. Ambos estn en el mbito de la base
de datos de SQL Server. Estas acciones se envan a la auditora, que las registra en el destino.
1.4.

Destino

Los resultados de una auditora se envan a un destino, que puede ser un archivo, el registro de
eventos de seguridad de Windows o el registro de eventos de aplicacin Windows. Los registros
se deben revisar y archivar peridicamente para garantizar que el destino tiene espacio
suficiente para escribir registros adicionales.
1.5.

Registros y tablas de auditora de base de datos

Las bases de datos contienen algunos de los datos corporativos ms confidenciale. Es esencial
contar con los registros de auditora de todas las consultas de las bases de datos para entender
quin ha accedido o cambiado los datos y cundo lo ha hecho. Los registros de auditora de las
bases de datos tambin son tiles para entender cmo las aplicaciones utilizan las bases de datos
para optimizar las consultas. Algunas bases de datos incluyen los registros de autora en los
archivos, mientras que otras permiten el acceso a las tablas de auditora mediante SQL.

Grupo Nro : Grupo 1

Pg. 4

Curso : Administracin de SQL

1.6.

Tema: Auditoria en SQL Server

Registros de auditora de sistema de archivos

Los datos confidenciales que no estn en bases de datos estn en sistemas de archivos. En
algunos sectores como el sanitario, el mayor riesgo de prdida de datos son los registros de
consumidores en sistemas de archivos compartidos. Los distintos sistemas operativos, las
herramientas de terceros y las tecnologas de almacenamiento ofrecen distintas opciones para
auditar el acceso de lectura de datos confidenciales en el nivel de sistema de archivos. Estos
datos de auditora son un origen de datos esencial para supervisar e investigar el acceso a datos
confidenciales.

1.7.

Porque auditar?

A travs de esta funcionalidad se puede rastrear y registrar de forma automtica los eventos que
ocurren a nivel del servidor o a nivel de la base de datos. Esto es posible a travs del uso del
objeto Audit
1.7.1. Crear una auditoria de Servidor
State: Habilita o deshabilita la recopilacin de registros por parte de la auditora para esta
especificacin de auditora.
USE master ;
GO
-- crear la auditoria del servidor
CREATE SERVER AUDIT Payrole_Security_Audit
TO FILE ( FILEPATH =
'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA' ) ;
GO
-- Perminir la auditoria de servidor
ALTER SERVER AUDIT Payrole_Security_Audit
WITH (STATE = ON) ;
1.7.2.ALTER SERVER AUDIT

Grupo Nro : Grupo 1

Pg. 5

Curso : Administracin de SQL

Tema: Auditoria en SQL Server

Cambiar el nombre de una auditora de servidor


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

Cambiar el destino de una auditora de servidor


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
1.7.3.DROP SERVER AUDIT
ALTER SERVER AUDIT HIPAA_Audit
STATE = OFF;
Grupo Nro : Grupo 1

Pg. 6

Curso : Administracin de SQL

Tema: Auditoria en SQL Server

GO
DROP SERVER AUDIT HIPAA_Audit;
GO
1.7.4.CREATE SERVER AUDIT SPECIFICATION
CREATE SERVER AUDIT SPECIFICATION HIPPA_Audit_Specification
FOR SERVER AUDIT HIPPA_Audit
ADD (FAILED_LOGIN_GROUP);
GO
1.7.5. ALTER SERVER AUDIT SPECIFICATION
ALTER SERVER AUDIT SPECIFICATION HIPPA_Audit_Specification
FOR SERVER AUDIT HIPPA_Audit
DROP (FAILED_LOGIN_GROUP)
ADD (DATABASE_OBJECT_ACCESS_GROUP);
GO
1.7.6.DROP SERVER AUDIT SPECIFICATION
DROP SERVER AUDIT SPECIFICATION HIPAA_Audit_Specification;

1.7.7.CREAR UNA ESPECIFICACIN DE AUDITORA DE NIVEL DE BASE DE


DATOS
USE master ;
GO
-- crear la auditoria del servidor
CREATE SERVER AUDIT Payrole_Security_Audit
TO FILE ( FILEPATH =
'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA' ) ;
GO
-- Perminir la auditoria de servidor
ALTER SERVER AUDIT Payrole_Security_Audit
WITH (STATE = ON) ;
---------------------------------------------USE AdventureWorks2012 ;
Grupo Nro : Grupo 1

Pg. 7

Curso : Administracin de SQL

Tema: Auditoria en SQL Server

GO
-- Create database audit specification.
CREATE DATABASE AUDIT SPECIFICATION Audit_Pay_Tables
FOR SERVER AUDIT Payrole_Security_Audit
ADD (SELECT , INSERT
ON HumanResources.EmployeePayHistory BY dbo )
WITH (STATE = ON) ;
GO
1.7.8.ALTER DATABASE AUDIT SPECIFICATION
ALTER DATABASE AUDIT SPECIFICATION HIPPA_Audit_DB_Specification
FOR SERVER AUDIT HIPPA_Audit
ADD (SELECT
ON Table1(Column1)
BY dbo)
WITH STATE = ON;
GO
1.7.9.DROP DATABASE AUDIT SPECIFICATION
DROP DATABASE AUDIT SPECIFICATION HIPAA_Audit_DB_Specification;
1.7.10.

Cmo ver un registro de auditora

SELECT * FROM sys.fn_get_audit_file ('E:\MyAudit\NameAudit.sqlaudit',default,default);


Proporciona informacion sobre el estado actual de la Auditoria
SELECT * FROM sys.dm_server_audit_status

En la tabla siguiente se describe el contenido del archivo de auditora que puede devolver esta
funcin.

Nombre de columna

Tipo

event_time

datetime2

Grupo Nro : Grupo 1

Descripcin
Fecha y hora en la que se desencadena la accin
auditable. No acepta valores NULL.
Pg. 8

Curso : Administracin de SQL

Tema: Auditoria en SQL Server

Realiza un seguimiento de la secuencia de registros de


sequence_number

int

un nico registro de auditora que era demasiado


grande para caber en el bfer de escritura destinado a
las auditoras. No acepta valores NULL.

action_id

char(4)
bit
1 = correcto

succeeded

0 = error

Id. de la accin. No acepta valores NULL.


Indica si la accin que desencaden el evento se ha
llevado a cabo correctamente. No admite valores
NULL. Para todos los eventos que no sean los eventos
de inicio de sesin, esto slo notifica si la
comprobacin del permiso tuvo o no tuvo xito, no la
operacin.

permission_bitmask

bigint

En algunas acciones, este es el permiso que se


concedi, deneg o revoc.

bit
1=
is_column_permission

verdadero
0 = falso

session_id

int

server_principal_id

int

Marcador que indica si ste es un permiso de nivel de


columna. No acepta valores NULL. Devuelve 0 si
permission_bitmask = 0.

Identificador de la sesin en la que se ha producido el


evento. No acepta valores NULL.
Identificador del contexto de inicio de sesin en el que
se realiza la accin. No acepta valores NULL.
Identificador del contexto de usuario de la base de

database_principal_id

int

datos en el que se realiza la accin. No acepta valores


NULL. Devuelve 0 si esto no es aplicable. Por
ejemplo, una operacin de servidor.

target_server_principa
l_id
target_database_princi
pal_id

Grupo Nro : Grupo 1

Entidad de seguridad de servidor en la que se realiza la


int

operacin GRANT/DENY/REVOKE. No acepta


valores NULL. Devuelve 0 si no es aplicable.

int

Entidad de seguridad de base de datos en la que se


realiza la operacin GRANT/DENY/REVOKE. No

Pg. 9

Curso : Administracin de SQL

Tema: Auditoria en SQL Server

acepta valores NULL. Devuelve 0 si no es aplicable.


Identificador de la entidad en la que se produjo la
auditora. Incluye lo siguiente:

Objetos de servidor

object_id

int

Bases de datos

Objetos de base de datos

Objetos de esquema

No acepta valores NULL. Devuelve 0 si la entidad es


el propio servidor o si la auditora no se realiza en un
nivel de objeto. Por ejemplo, la autenticacin.
class_type
session_server_princi
pal_name
server_principal_nam
e
server_principal_sid
database_principal_na
me
target_server_principa
l_name
target_server_principa
l_sid
target_database_princi
pal_name

server_instance_name

char(2)

sysname

El tipo de entidad auditable en la que se produce la


auditora. No acepta valores NULL.
Entidad de seguridad de servidor para la sesin.
Admite valores NULL.

sysname

Inicio de sesin actual. Admite valores NULL.

varbinary

SID del inicio de sesin actual. Admite valores NULL.

sysname

sysname

varbinary

sysname

nvarchar(12
0)

Usuario actual. Admite valores NULL. Devuelve


NULL si no est disponible.
Inicio de sesin de destino de la accin. Admite
valores NULL. Devuelve NULL si no es aplicable.
SID del inicio de sesin de destino. Admite valores
NULL. Devuelve NULL si no es aplicable.
Usuario de destino de la accin. Admite valores
NULL. Devuelve NULL si no es aplicable.
Nombre de la instancia de servidor donde se ha
producido la auditora. Se usa el formato
servidor\instancia estndar
El contexto de la base de datos en el que se produjo la

database_name

sysname

accin. Admite valores NULL. Devuelve NULL para


las auditoras que se realizan en el nivel de servidor.

Grupo Nro : Grupo 1

Pg. 10

Curso : Administracin de SQL

Tema: Auditoria en SQL Server

El contexto del esquema en el que se produjo la


schema_name

sysname

accin. Admite valores NULL. Devuelve NULL para


las auditoras que se producen fuera de un esquema.
El nombre de la entidad en la que se produjo la
auditora. Incluye lo siguiente:

Objetos de servidor

object_name

Objetos de base de datos

sysname

Bases de datos
Objetos de esquema

Admite valores NULL. Devuelve NULL si la entidad


es el propio servidor o si la auditora no se realiza en
un nivel de objeto. Por ejemplo, la autenticacin.

statement

nvarchar(40

Instruccin TSQL, si existe. Admite valores NULL.

00)

Devuelve NULL si no es aplicable.


La informacin nica que se aplica exclusivamente a
un evento se devuelve como XML. Este tipo de
informacin est incluida en un pequeo nmero de

additional_informatio

nvarchar(40

00)

acciones de auditora.
Admite valores NULL. Devuelve NULL si el evento
no proporciona informacin adicional

file_name

audit_file_offset

2.

varchar(260
)

bigint

Ruta de acceso y nombre del archivo de registro de


auditora del que procede el registro. No acepta
valores NULL.
Desplazamiento de bfer del archivo que contiene el
registro de auditora. No acepta valores NULL.

CREACIN DE AUDITORIA

2.1.

Nos vamos a la opcin de seguridad del servidor de base de


datos y elegimos la opcin

Grupo Nro : Grupo 1

Pg. 11

Curso : Administracin de SQL

Tema: Auditoria en SQL Server

2.2.

Elegimos
opcin

New

la
Audit

(NUEVA AUDITORIA)

2.3.

Damos

nombre a nuestro Audit

posteriormente en Audit
destination elegimos la

opcin

file y elegimos un tipo

de dato

Grupo Nro : Grupo 1

Pg. 12

Curso : Administracin de SQL

NOTA

Tema: Auditoria en SQL Server

No

apague la lapto
Vamos

a la carpeta de
Microsoft SQL

Server

en la carpeta

Audit

vemos que el

archivo de la

Grupo Nro : Grupo 1

Pg. 13

Curso : Administracin de SQL

Tema: Auditoria en SQL Server

3. Crear Audit de Servidor SQL


3.1.
Damos un nombre a la auditoria especfica y en Audit seleccionamos la auditoria de
servidor creada anteriormente y seleccionamos el tipo de accin de la auditoria.

3.2.

Aqu elegimos el nombre de nuestra Audit y la Bd.

Grupo Nro : Grupo 1

Pg. 14

Curso : Administracin de SQL

Tema: Auditoria en SQL Server

3.3.

La auditora de servidor se activ satisfactoriamente

3.4.

Permitir/encender la auditoria de la base de datos especifica

Grupo Nro : Grupo 1

Pg. 15

Curso : Administracin de SQL

3.5.

Tema: Auditoria en SQL Server

La auditora de base de datos especifica se activ satisfactoriamente

Grupo Nro : Grupo 1

Pg. 16

Curso : Administracin de SQL

4.

Tema: Auditoria en SQL Server

Uso de Triggers para auditar bases de datos.

4.1.

Triggers:
o

Procedimiento que se ejecuta cuando se cumple una condicin establecida al


realizar una operacin
Son usados para mejorar la administracin de la Base de datos, sin necesidadde
contar con que el usuario ejecute sentencias de SQL determinadas para tal

efecto
La estructura bsica de un trigger es:
Llamada de activacin: es la sentencia que permite "disparar" el cdigo

a ejecutar.
Restriccin: es la condicin necesaria para realizar el cdigo. Esta

restriccin puede ser de tipo condicional o de tipo nulidad.


Accin a ejecutar: es la secuencia de instrucciones a ejecutar una vez
que se han cumplido las condiciones iniciales.

4.2.

Auditora

La auditora de una instancia de SQL Server o de una base de datos de SQL Server

implica el seguimiento y registro de los eventos que se producen en el sistema.


Hay varios niveles de auditora disponibles para SQL Server, dependiendo de los

requisitos gubernamentales o los estndares de cada instalacin


Una auditora es la combinacin de varios elementos en un nico paquete para un grupo
especfico de acciones de servidor o de base de datos

Los grupos de acciones de auditora son grupos predefinidos de acciones. Ambos estn
en el mbito de la base de datos de SQL Server. Estas acciones se envan a la auditora,

que las registra en el destino.


4.2.1. Para crear una nueva especificacin de auditora
En el Explorador de objetos, expanda de forma recursiva el nodo Seguridad hasta

Auditoras.
Haga clic con el botn secundario en Auditoras y, a continuacin, haga clic en

Nueva auditora. Esto abre la pgina Crear auditora.


En el campo Nombre de auditora, escriba ServerAudit1.
En Destino de auditora, elija ApplicationLog en la lista.
Haga clic en Aceptar para aceptar la configuracin predeterminada y guardar la
nueva especificacin de auditora.

4.2.2.

Para crear una especificacin de auditora de servidor

Grupo Nro : Grupo 1

Pg. 17

Curso : Administracin de SQL

Tema: Auditoria en SQL Server

En el Explorador de objetos, haga clic con el botn secundario en


Especificaciones de auditora de servidor y, a continuacin, haga clic en Nueva
especificacin de auditora de servidor. Esto abre la pgina Crear especificacin

de auditora de servidor.
En el campo Nombre, escriba AdventureworksServerAudit1.
Para Auditora de servidor, elija ServerAudit1 en la lista.
En la cuadrcula de la tabla, haga clic en la fila que viene precedida por el
asterisco (*). En Tipo de accin de auditora, elija FAILED_LOGIN_GROUP

en la lista.
Haga clic en Aceptar para guardar la especificacin de auditora de servidor.
Expanda el nodo Auditoras y haga clic con el botn secundario en

ServerAudit1. Haga clic en Habilitar auditora para iniciar la auditora.


En el mantenimiento de unas Bases de Datos as se presenta la estructura y est presente
la Auditoria
La auditora implica registrar los resultados del proceso de depuracin, hacer

revisiones sobre la integridad y racionalidad y manejar excepciones.


La auditora debe incluir el manejo de excepciones con el fin de resolver los

problemas de calidad de los datos.


La tarea de auditora debe incluir revisiones de la integridad y la racionalidad
Los recursos humanos pueden ser necesarios en las tareas de auditora durante
las fases de preparacin e integracin

Grupo Nro : Grupo 1

Pg. 18

Curso : Administracin de SQL

Grupo Nro : Grupo 1

Tema: Auditoria en SQL Server

Pg. 19

Curso : Administracin de SQL

Tema: Auditoria en SQL Server

Script 1:
Auditoria para verificar la creacin, eliminacin y alteracin de las tablas
CREATE TABLE dbo.SchemaAudit (
AuditDate DATETIME NOT NULL,
UserName sysname NOT NULL,
[Event] sysname NOT NULL,
[Schema] sysname NULL,
[Object] VARCHAR(50) NULL,
[TSQL] NVARCHAR(MAX) NOT NULL,
[XMLEventData] XML NOT NULL);
go
CREATE TRIGGER [SchemaAuditDDLTrigger] ON DATABASE
FOR DDL_DATABASE_LEVEL_EVENTS
AS
BEGIN
Grupo Nro : Grupo 1

Pg. 20

Curso : Administracin de SQL

Tema: Auditoria en SQL Server

SET NoCount ON
DECLARE @EventData XML,
@Schema SYSNAME,
@Object SYSNAME,
@EventType SYSNAME,
@SQL VARCHAR(MAX)
SET @EventData = EventData()
SET @Schema = @EventData.value
('data(/EVENT_INSTANCE/SchemaName)[1]', 'VARCHAR(50)')
SET @Object = @EventData.value
('data(/EVENT_INSTANCE/ObjectName)[1]', 'VARCHAR(50)')
SET @EventType = @EventData.value
('data(/EVENT_INSTANCE/EventType)[1]', 'VARCHAR(50)')
INSERT SchemaAudit (AuditDate, UserName, [Event], [Schema],Object, TSQL,
[XMLEventData])
SELECT
GETDATE(),
@EventData.value('data(/EVENT_INSTANCE/UserName)[1]', 'SYSNAME'),
@EventType, @Schema, @Object,
@EventData.value('data(/EVENT_INSTANCE/TSQLCommand/CommandText)
[1]','VARCHAR(max)'),
@EventData
END
CREATE TABLE Test (
PK INT NOT NULL Primary Key,
Col1 VARCHAR(1)
);
GO
ALTER TABLE Test
DROP Column Col1
ALTER TABLE Test
ADD Col1 CHAR(1)
DROP TABLE Test
Script 2

Grupo Nro : Grupo 1

Pg. 21

Curso : Administracin de SQL

Tema: Auditoria en SQL Server

create database empresa


go
use empresa
go
create table empleado
(
idempleado int identity primary key,
datos varchar(30),
edad int
)
go
create table empleado_audit
(
idempleado int,
datos varchar(30),
edad int,
datos_modif varchar(30),
edad_modif int,
usuario varchar(50),
host varchar(50),
fechahora Datetime,
accion varchar(60)
)
go
Create trigger tr_audita_empleado on empleado
AFTER insert, update, delete
AS BEGIN
declare

@idemple

int,

@val_olddatos

varchar(100),

@val_newdatos

varchar(100), @val_oldedad int, @val_newedad int, @accion varchar(20)


select @idemple = idempleado from inserted
select @val_olddatos = datos from deleted
select @val_newdatos = datos from inserted
Grupo Nro : Grupo 1

Pg. 22

Curso : Administracin de SQL

Tema: Auditoria en SQL Server

select @val_oldedad = edad from deleted


select @val_newedad = edad from inserted
if(exists(select * from inserted) AND exists(select * from deleted))--CUANDO HAY UNA ACCION DE ACTUALIZAR SE TIENE QUE REALIZAR UN
DELETEC Y UPDATE
begin
set @accion = 'UPDATE'
if(@val_newdatos = @val_olddatos)
set @val_newdatos = null
if(@val_newedad = @val_oldedad)
set @val_newedad = null
insert

into

empleado_audit

values

(@idemple,@val_olddatos,@val_oldedad,@val_newdatos,@val_newedad,SUSER_NA
ME(),HOST_NAME(),GETDATE(), @accion)
end
else
BEGIN
if(exists(select * from inserted))
begin
set @accion = 'INSERT'
insert

into

empleado_audit

values

(@idemple,@val_newdatos,@val_newedad,null,null,SUSER_NAME(),HOST_NAME(
),GETDATE(), @accion)
end
else
begin
select @idemple = idempleado from deleted
set @accion = 'DELETE'
insert

into

empleado_audit

values

(@idemple,@val_olddatos,@val_oldedad,null,null,SUSER_NAME(),HOST_NAME(),
GETDATE(), @accion)
end
END
END
Grupo Nro : Grupo 1

Pg. 23

Curso : Administracin de SQL

Tema: Auditoria en SQL Server

GO
select * from empleado
select * from empleado_audit
insert into empleado values ('Walter Chuzon Sanchez', 30)
insert into empleado values ('Kevin Guevara Cabrera ', 25)
insert into empleado values('Alex Bernal Leyva ', 30)
insert into empleado values ('Henrry Vazques',50)
--- Actualisamos update
update empleado set datos = 'Walter Chuzon Castro' where idempleado=1
update empleado set edad = 18 where idempleado=1
-- eliminacio deletect
delete empleado where idempleado = 4
5.

BIBLIOGRAFIA

Libro:

Base de Datos Avanzado I. Lima: Cibertec.

SQL Server 2008: Administracin de una base de datos con SQL Server Management

Studio
Autor -> Jerome Gabillaud

Sitio WEB

https://technet.microsoft.com/es-es/library/cc280765(v=sql.105).aspx
https://msdn.microsoft.com/es-pe/library/cc280424.aspx
https://technet.microsoft.com/es-es/library/cc280563(v=sql.105).aspx
https://msdn.microsoft.com/es-pe/library/cc280386.aspx

Grupo Nro : Grupo 1

Pg. 24

S-ar putea să vă placă și