Array
(
)

Monitoramento

Eloi Filho
   - 14 set 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

Mariana Carvalho
   - 14 set 2013

olá, tudo bem?

Eloi, da uma olhadinha nesse link:

http://technet.microsoft.com/pt-br/library/ms191511.aspx

Roniere Almeida
   - 14 set 2013

Eloi, providencie uma atualização rapaz.

Fabiano Carvalho
   - 16 set 2013

Sim, tem como, utilizando trigger.

Vinicius Oliveira
   - 18 set 2013

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.

Mariana Carvalho
   - 18 set 2013

queria ter instalado o 2000 para testar.

Vinicius Oliveira
   - 18 set 2013


Citação:
queria ter instalado o 2000 para testar.


Pode testar nas versoes acima, exemplo: 2005,2008

Mariana Carvalho
   - 18 set 2013

pode sem problema? pensei que fosse especifico.

Vinicius Oliveira
   - 19 set 2013

Sim sem problema algum. Abs

Fabiano Carvalho
   - 19 set 2013

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!

Fabiano Carvalho
   - 19 set 2013

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

Mariana Carvalho
   - 22 set 2013


Citação:
Sim sem problema algum. Abs


obrigada e desculpa.

Vinicius Oliveira
   - 23 set 2013


Citação:

Citação:
Sim sem problema algum. Abs


obrigada e desculpa.


Desculpa do que? Perdoa caso tenha expressado errado.

Vinicius Oliveira
   - 23 set 2013


Citação:

Citação:
Sim sem problema algum. Abs


obrigada e desculpa.


Desculpa do que? Perdoa caso tenha expressado errado.

Mariana Carvalho
   - 02 out 2013

tudo certo, obrigada.