top of page

Auditoria em um servidor de banco de dados SQL Server

  • Foto do escritor: CloudDB
    CloudDB
  • 1 de jul. de 2023
  • 3 min de leitura

USE MASTER

-- Criar uma auditoria

CREATE SERVER AUDIT AuditDML

TO FILE (FILEPATH = 'C:\SQL_AUDIT\')

WHERE ([server_principal_name] <> 'teste')

AND ([server_principal_name] <> 'DOMINIO\LOGIN');



-- Iniciar a auditoria

ALTER SERVER AUDIT AuditDML WITH (STATE = ON);



-- Criar uma especificação de auditoria

USE BANCO_AUDITADO --INFORMAR O BANCO A SER AUDITADO


CREATE DATABASE AUDIT SPECIFICATION AuditDML

FOR SERVER AUDIT AuditDML

ADD (DELETE ON DATABASE::BANCO_AUDITADO BY PUBLIC), --INFORMAR O BANCO A SER AUDITADO

ADD (INSERT ON DATABASE::BANCO_AUDITADO BY PUBLIC), --INFORMAR O BANCO A SER AUDITADO

ADD (UPDATE ON DATABASE::BANCO_AUDITADO BY PUBLIC); --INFORMAR O BANCO A SER AUDITADO


-- Ativar a especificação de auditoria

ALTER DATABASE AUDIT SPECIFICATION AuditDML WITH (STATE = ON);


---------------------------------------------------------------------------------

--Após a auditoria criada, consultar ela com os scripts abaixo


--Listar as auditorias existentes

SELECT * FROM sys.server_file_audits

GO

-- Listar os arquivos criados pela auditoria

SELECT * FROM sys.fn_get_audit_file('C:\SQL_AUDIT\*', NULL, NULL)

--WHERE session_server_principal_name = 'LOGIN_ESPECIFICO';

GO

--Listar as auditorias, informar o status e tamanho dos arquivos em bytes

SELECT * FROM sys.dm_server_audit_status

---------------------------------------------------------------------------------



O script fornecido realiza uma auditoria em um servidor de banco de dados SQL Server. Vamos analisar o script passo a passo:


USE MASTER: Esta declaração define o contexto do banco de dados como "master". O banco de dados "master" é um banco de sistema que contém informações sobre todos os outros bancos de dados no servidor.


CREATE SERVER AUDIT AuditDML TO FILE (FILEPATH = 'C:\SQL_AUDIT\') WHERE ([server_principal_name] <> 'teste') AND ([server_principal_name] <> 'DOMINIO\LOGIN');: Esta instrução cria uma auditoria de servidor chamada "AuditDML" e especifica que os logs de auditoria devem ser armazenados em arquivos em um diretório específico ('C:\SQL_AUDIT'). A cláusula "WHERE" filtra os eventos de auditoria com base no nome do principal do servidor. Neste caso, os eventos não serão registrados se o nome do principal do servidor for "teste" ou "DOMINIO\LOGIN".


ALTER SERVER AUDIT AuditDML WITH (STATE = ON);: Esta instrução inicia a auditoria do servidor chamada "AuditDML". Define o estado da auditoria como "ON", o que significa que a auditoria está ativada e começará a registrar os eventos especificados.


USE BANCO_AUDITADO --INFORMAR O BANCO A SER AUDITADO: Esta declaração define o contexto do banco de dados como "BANCO_AUDITADO". Substitua "BANCO_AUDITADO" pelo nome real do banco de dados que você deseja auditar.


CREATE DATABASE AUDIT SPECIFICATION AuditDML FOR SERVER AUDIT AuditDML ADD (DELETE ON DATABASE::BANCO_AUDITADO BY PUBLIC), ADD (INSERT ON DATABASE::BANCO_AUDITADO BY PUBLIC), ADD (UPDATE ON DATABASE::BANCO_AUDITADO BY PUBLIC);: Esta instrução cria uma especificação de auditoria de banco de dados chamada "AuditDML" para a auditoria do servidor "AuditDML". Ela especifica que os eventos de exclusão, inserção e atualização no banco de dados especificado ("BANCO_AUDITADO") devem ser registrados pela auditoria.


ALTER DATABASE AUDIT SPECIFICATION AuditDML WITH (STATE = ON);: Esta instrução ativa a especificação de auditoria do banco de dados "AuditDML". Define o estado da especificação de auditoria como "ON", permitindo que ela registre os eventos especificados.


Após a criação da auditoria, o script fornece algumas consultas para interagir com ela:


SELECT * FROM sys.server_file_audits: Esta consulta retorna informações sobre todas as auditorias de arquivo de servidor existentes.


SELECT * FROM sys.fn_get_audit_file('C:\SQL_AUDIT\*', NULL, NULL): Esta consulta lista todos os arquivos de log de auditoria gerados pela auditoria. Ele especifica o caminho do diretório onde os arquivos de log são armazenados ('C:\SQL_AUDIT'). Você pode opcionalmente filtrar os resultados fornecendo um nome de login específico na cláusula WHERE.


SELECT * FROM sys.dm_server_audit_status: Esta consulta retorna informações sobre as auditorias de servidor, incluindo o status delas (ativada/desativada) e o tamanho dos arquivos de auditoria em bytes.


Essas consultas podem ser executadas para verificar o status da auditoria e revisar os arquivos de log gerados por ela.

 
 
 

Posts recentes

Ver tudo

Comments


Logo_quadrada.png

CLOUD DB LTDA - 28.961.479/0001-41

© 2020 Direitos Reservados CloudDB ®  O plágio é considerado crime e sua principal referência é a lei 9.610 - ♥ SEO WIX Partner - Phoenix

bottom of page