Tema Auditoria en SQL SEVER
Tema Auditoria en SQL SEVER
Tema Auditoria en SQL SEVER
en SQL Server
CURSO :
CICLO / SEMESTRE
VI / 2014-2
FECHA DE ENTREGA:
23/05/2015
AUTORES
(Grupo Nro 2)
REVISADO POR :
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.
1.2.
1.3.
Pg. 1
1.4.
Destino................................................................................................ 4
1.5.
1.6.
1.7.1.
1.7.2.
1.7.3.
1.7.4.
1.7.5.
1.7.6.
1.7.9.
CREACIN DE AUDITORIA........................................................................11
3.
4.
5.
4.1.
Triggers:............................................................................................. 16
4.2.
Auditora............................................................................................ 16
BIBLIOGRAFIA....................................................................................... 22
Pg. 2
1.1.
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.
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
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.
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.
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.
Pg. 4
1.6.
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
Pg. 5
Pg. 6
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;
Pg. 7
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.
En la tabla siguiente se describe el contenido del archivo de auditora que puede devolver esta
funcin.
Nombre de columna
Tipo
event_time
datetime2
Descripcin
Fecha y hora en la que se desencadena la accin
auditable. No acepta valores NULL.
Pg. 8
int
action_id
char(4)
bit
1 = correcto
succeeded
0 = error
permission_bitmask
bigint
bit
1=
is_column_permission
verdadero
0 = falso
session_id
int
server_principal_id
int
database_principal_id
int
target_server_principa
l_id
target_database_princi
pal_id
int
Pg. 9
Objetos de servidor
object_id
int
Bases de datos
Objetos de esquema
server_instance_name
char(2)
sysname
sysname
varbinary
sysname
sysname
varbinary
sysname
nvarchar(12
0)
database_name
sysname
Pg. 10
sysname
Objetos de servidor
object_name
sysname
Bases de datos
Objetos de esquema
statement
nvarchar(40
00)
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
CREACIN DE AUDITORIA
2.1.
Pg. 11
2.2.
Elegimos
opcin
New
la
Audit
(NUEVA AUDITORIA)
2.3.
Damos
posteriormente en Audit
destination elegimos la
opcin
de dato
Pg. 12
NOTA
No
apague la lapto
Vamos
a la carpeta de
Microsoft SQL
Server
en la carpeta
Audit
vemos que el
archivo de la
Pg. 13
3.2.
Pg. 14
3.3.
3.4.
Pg. 15
3.5.
Pg. 16
4.
4.1.
Triggers:
o
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
4.2.
Auditora
La auditora de una instancia de SQL Server o de una base de datos 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,
Auditoras.
Haga clic con el botn secundario en Auditoras y, a continuacin, haga clic en
4.2.2.
Pg. 17
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
Pg. 18
Pg. 19
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
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
Pg. 21
@idemple
int,
@val_olddatos
varchar(100),
@val_newdatos
Pg. 22
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
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:
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
Pg. 24