jueves, 10 de mayo de 2012

Habilitar Servidor de Auditoria en SQL Server


--Crear un servidor de auditoria que reporte
--en el evet viewer de windows

--Crear una base de datos
Create database Cosa
go

--Crear una tabla dentro de la base de datos
use cosa
go
Create table EmployeeReview
(Employeeid int not null,
reviewdate datetime default getdate() not null,
comments varchar(2000) not null
)
--Crear el servidor de auditoria
use master
go
Create server audit Test_server
to application_log
with(queue_delay = 1000, on_failure = continue)
go
--Crear la base de datos de auditoria para el objeto
--EmployeeReview base de datos Cosa
Use Cosa
Create database audit specification Test_Database_Auditoria
for server audit Test_server
add ( insert on dbo.EmployeeReview by dbo) with (state=on)

--habilito el servidor
use master
go
alter server audit Test_server
with (state=on)
--insertamos datos a la tabla y vamos al visor de sucesos
--a revisar que se registre la inserción
insert into EmployeeReview
(Employeeid,reviewdate ,comments ) values
(1,'05-09-2012','Comentario no encriptado')

Encriptar Datos en una Tabla en SQL Server


--Crear una base de datos
Create database Cosa
go

--Crear una tabla dentro de la base de datos
use cosa
go
Create table EmployeeReview
(Employeeid int not null,
reviewdate datetime default getdate() not null,
comments varchar(2000) not null
)
--Crear un login y un user para la base de datos
Use master
go
Create login HRApp with password='P@ssw0rd'

Use cosa
go
create user HRApp for login HrApp

--asignar permisos al user
grant select, insert, update on EmployeeReview
to HrApp

--Proceso de encriptación con Llaves y un certificado Simetrico---------

--crear una llave maestra
--(Llave madre de todas las siguiente llaves que se creen)
Create master key
encryption by password ='P@ssw0rd'

--crear un certificado simetrico

create certificate HRAppCert
authorization HrApp
with subject='Hr Certificate'

--crear la llave simetrica basada sobre el certificado
Create symmetric key Hrkey
authorization HrApp
with algorithm= Triple_Des
encryption by certificate HRAppCert

---insertar un dato para revisar la tabla con el usuario dbo
insert into EmployeeReview
(Employeeid,reviewdate ,comments ) values
(1,'05-09-2012','Comentario no encriptado')

select * from EmployeeReview

--sesionar con el usuario HRAPP y abrir la llave simetrica para
--insertar un dato
execute as user = 'HrApp'

open symmetric key Hrkey decryption by certificate HRAppCert

--insertar un dato e encriptarlo

insert into EmployeeReview
(Employeeid,reviewdate ,comments ) values
(2,'05-09-2012',encryptbykey(key_guid('Hrkey'),
'Este comentario esta encriptado'))

--cerrar la llave
Close all symmetric keys
--salir del usuario HRAPP
Revert

--consultar la tabla
select * from EmployeeReview

--desencriptar los datos con el usuario dbo.
open symmetric key HrKey decryption by certificate HrAppCert

select convert(varchar, decryptbykey(comments)) as comentario
from EmployeeReview

close all symmetric keys