Monitoramento

14/09/2013

Bom dia

to com o seguinte cenário tenho um servidor sql 2000 constantemente vejo que alguns registros de uma determinada tabela estao sumindo
e tenho quase certesa que estao deletando via query analizer.

tem alguma forme criar um log com todos os comandos executados no banco de dados e que mostre qual a maquina que executou esse comando na rede

Eloi Filho

Respostas

14/09/2013

Mariana Carvalho

olá, tudo bem?

Eloi, da uma olhadinha nesse link:

[url]http://technet.microsoft.com/pt-br/library/ms191511.aspx[/url]
Responder Citar

14/09/2013

Roniere Almeida

Eloi, providencie uma atualização rapaz.
Responder Citar

16/09/2013

Fabiano Carvalho

Sim, tem como, utilizando trigger.
Responder Citar

18/09/2013

Vinicius Oliveira

Prezados boa noite, abaixo um exemplo acredito que funcione no 2000.

Tabela de teste.

create table usuario
(
cod_usu int identity,
nome_usu varchar(50),
email_usu varchar(100),
login_usu varchar(20),
senha_usu varchar(20),
nivel_usu tinyint,
constraint pk_usu primary key(cod_usu)
)

criando a tabela que monitora as atividades da tabela usuario, chamaremos essa de usu_log
create table usu_log
(
cod_log int identity,
cod_usu int,
nome_usu varchar(50),
email_usu varchar(100),
login_usu varchar(20),
senha_usu varchar(20),
nivel_usu tinyint,
tipo varchar(20),
data_log datetime default getdate(),
usu_log varchar(50) default user,
usu_sys varchar(100) default system_user,
usu_host varchar(100)default host_name(),
constraint pk_log primary key(cod_log)
)

Efetue o insert

insert into usuario values
('Francisco','chico@uol.com.br','chico','123',1)
-------------------------------------------------
insert into usuario values
('Maísa','maisa@gmail.com','maisa','852',2)
-------------------------------------------------
insert into usuario values
('Fernando','fernando@ig.com.br','fernando','51',1)

-----

Criação da trigger.

create trigger verifica_delete
on usuario
for delete
as
begin
insert into usu_log(cod_usu, nome_usu, email_usu,login_usu, senha_usu, nivel_usu, tipo)
select *,'delete' from deleted
end

Vamos efetuar o teste.

delete from usuario where cod_usu=2

Efetuar a consulta
select * from usu_log

Abraços espero ter ajudado.
Responder Citar

18/09/2013

Mariana Carvalho

queria ter instalado o 2000 para testar.
Responder Citar

18/09/2013

Vinicius Oliveira

queria ter instalado o 2000 para testar.


Pode testar nas versoes acima, exemplo: 2005,2008
Responder Citar

18/09/2013

Mariana Carvalho

pode sem problema? pensei que fosse especifico.
Responder Citar

19/09/2013

Vinicius Oliveira

Sim sem problema algum. Abs
Responder Citar

19/09/2013

Fabiano Carvalho

ao invés de colocar 'delete', utilize $action que será informada a instrução., no 2000 e 2005 não sei se existe isso, mas no 2008+ existe essa facilidade!
Responder Citar

19/09/2013

Fabiano Carvalho

é usar EVENTDATA que terá todas as informaçoes, até a instrução que o usuário utilizou.
Responder Citar

22/09/2013

Mariana Carvalho

Sim sem problema algum. Abs


obrigada e desculpa.
Responder Citar

23/09/2013

Vinicius Oliveira

[quote]Sim sem problema algum. Abs


obrigada e desculpa.[/quote]

Desculpa do que? Perdoa caso tenha expressado errado.
Responder Citar

23/09/2013

Vinicius Oliveira

[quote]Sim sem problema algum. Abs


obrigada e desculpa.[/quote]

Desculpa do que? Perdoa caso tenha expressado errado.
Responder Citar

02/10/2013

Mariana Carvalho

tudo certo, obrigada.
Responder Citar