SQL Server Audit Criando Auditoria no SQL Server

sql server audit Primeiramente vamos criar uma tabela tabela_funcionários para testar a auditoria
CREATE TABLE TABELA_FUNCIONARIOS
(
ID INT IDENTITY,
NOME_FUNCIONARIO VARCHAR(80),
SALARIO_FUNCIONARIO VARCHAR(20)
)

SELECT * FROM TABELA_FUNCIONARIOS

INSERT INTO TABELA_FUNCIONARIOS
values
('Joao', 1000),
('Jose', 2000),
('Alexandre', 3000)

SELECT * FROM TABELA_FUNCIONARIOS
  Criar o arquivo de auditoria a nível de servidor
USE [master]
GO
CREATE SERVER AUDIT [AUDIT_TABELA_FUNCIONARIOS]
TO FILE
( FILEPATH = N'C:\Auditoria'
,MAXSIZE = 0 MB
,MAX_ROLLOVER_FILES = 2147483647
,RESERVE_DISK_SPACE = OFF
)
WITH
( QUEUE_DELAY = 1000
,ON_FAILURE = CONTINUE
)
  Criar a auditoria no Banco de Dados e indicar o que será auditado
USE [empresa]
GO
CREATE DATABASE AUDIT SPECIFICATION [DATABASE_AUDIT_TABELA_FUNCIONARIOS]
FOR SERVER AUDIT [AUDIT_TABELA_FUNCIONARIOS]
  Indicar que será auditado
OBS: As três linhas indicam as três possíveis varições no nome da tabela.
ADD (SELECT ON OBJECT::[dbo].[TABELA_FUNCIONARIOS] BY [public]),
ADD (SELECT ON OBJECT::[TABELA_FUNCIONARIOS] BY [public]),
ADD (SELECT ON OBJECT::TABELA_FUNCIONARIOS BY [public]),
  Caso queira excluir a auditoria
--drop DATABASE AUDIT SPECIFICATION [DATABASE_AUDIT_TABELA_FUNCIONARIOS]
  Após criar a auditoria, é necessário ativá-la a nível de servidor
USE [empresa]
GO

ALTER SERVER AUDIT AUDIT_TABELA_FUNCIONARIOS
WITH (STATE = ON);
GO
  Ativar a auditoria a nível de Banco de Dados
USE [empresa]
GO

ALTER DATABASE AUDIT SPECIFICATION [DATABASE_AUDIT_TABELA_FUNCIONARIOS]
WITH (STATE = ON)
GO
  Testando a auditoria
SELECT * FROM [dbo].[TABELA_FUNCIONARIOS]
SELECT * FROM [TABELA_FUNCIONARIOS]
SELECT * FROM TABELA_FUNCIONARIOS
  Realizando um UPDATE
UPDATE [dbo].[TABELA_FUNCIONARIOS] SET SALARIO_FUNCIONARIO = '1500' WHERE ID = '1'
  Visualizando os LOGS
SELECT * FROM sys.fn_get_audit_file (N'C:\Auditoria\*',default,default);
  Visualizando os LOGS com alguns filtros
SELECT
event_time 'horario',
database_name + '.' + schema_name + '.' + object_name 'objeto',
statement,
server_principal_name 'login',
session_server_principal_name 'user'
FROM sys.fn_get_audit_file (N'C:\Auditoria\*',default,default)
WHERE action_id = 'SL';
  Se você deseja visualizar todas as auditorias existentes no Banco de Dados
select * from sys.server_audits
  Caso queira mais informações sobre o assunto, segue alguns links

Loading