Monitoramento
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
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
Curtidas 0
Respostas
Mariana Carvalho
14/09/2013
olá, tudo bem?
Eloi, da uma olhadinha nesse link:
[url]http://technet.microsoft.com/pt-br/library/ms191511.aspx[/url]
Eloi, da uma olhadinha nesse link:
[url]http://technet.microsoft.com/pt-br/library/ms191511.aspx[/url]
GOSTEI 0
Roniere Almeida
14/09/2013
Eloi, providencie uma atualização rapaz.
GOSTEI 0
Fabiano Carvalho
14/09/2013
Sim, tem como, utilizando trigger.
GOSTEI 0
Vinicius Oliveira
14/09/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.
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.
GOSTEI 0
Mariana Carvalho
14/09/2013
queria ter instalado o 2000 para testar.
GOSTEI 0
Vinicius Oliveira
14/09/2013
queria ter instalado o 2000 para testar.
Pode testar nas versoes acima, exemplo: 2005,2008
GOSTEI 0
Mariana Carvalho
14/09/2013
pode sem problema? pensei que fosse especifico.
GOSTEI 0
Vinicius Oliveira
14/09/2013
Sim sem problema algum. Abs
GOSTEI 0
Fabiano Carvalho
14/09/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!
GOSTEI 0
Fabiano Carvalho
14/09/2013
é usar EVENTDATA que terá todas as informaçoes, até a instrução que o usuário utilizou.
GOSTEI 0
Mariana Carvalho
14/09/2013
Sim sem problema algum. Abs
obrigada e desculpa.
GOSTEI 0
Vinicius Oliveira
14/09/2013
Sim sem problema algum. Abs
obrigada e desculpa.
Desculpa do que? Perdoa caso tenha expressado errado.
GOSTEI 0
Vinicius Oliveira
14/09/2013
Sim sem problema algum. Abs
obrigada e desculpa.
Desculpa do que? Perdoa caso tenha expressado errado.
GOSTEI 0
Mariana Carvalho
14/09/2013
tudo certo, obrigada.
GOSTEI 0