Java interceptar comandos banco MySql

6 respostas
Planc

Boa tarde, alguém sabe como posso interceptar os comandos que estão sendo executados no banco de dados MySql através do Java? Através de uma conexão com o banco eu consegui pegar toda a estrutura de tabelas e campos, mas não to conseguindo pegar(se é que tem como!?) os comandos que os usuários estão executando no banco através do sistema.

6 Respostas

Planc

Galera estou desesperado já! alguém me da uma luz hehe … não faço a mínima idéia de como farei para ver os comandos. O que quero fazer é como se eu executasse o comando sp_browsereplcmds em um banco de dados SQL Server que tenha sido configurada uma replicação. Só que preciso desses dados dentro do Java para listar em uma página JSP…

Planc

uahhhhhhhh

drsmachado

Se está desesperado, pesquise, não fique esperando a resposta cair do céu.
Primeiro, você deve ter visto ou lido por aí que o acesso que o java possui ao banco é restrito.
Até onde eu sei (o que pode não significar muito), isso não é possível.
O máximo que você conseguiria seria criar um trigger em cada ação realizada no banco e, para cada vez que a trigger for disparada, você grava os dados que precisa numa tabela específica.
Desta tabela, com um select * from tabela você consegue estes dados.
Veja que você cita o SQL Server, mas ele quase nada tem a ver com o MySQL.

Uma boa dica é ler a documentação do MySQL.

Planc

Já estou pesquisando a respeito faz alguns dias… e até agora não consegui muita coisa. Apenas replicar a estrutura do banco. Pergunte antes de sair falando!

Primeiro, você deve ter visto ou lido por aí que o acesso que o java possui ao banco é restrito.
Até onde eu sei (o que pode não significar muito), isso não é possível.
O máximo que você conseguiria seria criar um trigger em cada ação realizada no banco e, para cada vez que a trigger for disparada, você grava os dados que precisa numa tabela específica.
Desta tabela, com um select * from tabela você consegue estes dados.

Ta ai, uma idéia, vou ver no que isto implica em algo no tcc que estou fazendo.

Eu citei o MySql Server para o pessoal ter noção do que eu estou falando. Quem já trabalhou com replicação conhece muito bem o comando sp_browsereplcmds. No MySql acredito que deve existir algo parecido, pois no MySql também é possivel montar replicação.

Obrigado pela dica. Aguardo novas idéias…

drsmachado

Já estou pesquisando a respeito faz alguns dias… e até agora não consegui muita coisa. Apenas replicar a estrutura do banco. Pergunte antes de sair falando!

Primeiro, você deve ter visto ou lido por aí que o acesso que o java possui ao banco é restrito.
Até onde eu sei (o que pode não significar muito), isso não é possível.
O máximo que você conseguiria seria criar um trigger em cada ação realizada no banco e, para cada vez que a trigger for disparada, você grava os dados que precisa numa tabela específica.
Desta tabela, com um select * from tabela você consegue estes dados.

Ta ai, uma idéia, vou ver no que isto implica em algo no tcc que estou fazendo.

Eu citei o MySql Server para o pessoal ter noção do que eu estou falando. Quem já trabalhou com replicação conhece muito bem o comando sp_browsereplcmds. No MySql acredito que deve existir algo parecido, pois no MySql também é possivel montar replicação.

Obrigado pela dica. Aguardo novas idéias…

Creio que você esteja equivocado, quem está postando coisas inúteis aqui e não está pesquisando e você.
Comentários como “up”, “sobe”, “ahhhhhhhhhhhhhhhhh” e afins, bem como “pelo amor de Deus”, “ajuda”, “vida ou morte”, “to deprimido já” não irão te ajudar a ter respostas mais rapidamente.
Nunca trabalhei com replicação, mas, creio que este comando que você está informando seja executado em um terminal do Windows, não? Provavelmente, por este SO ter acesso ao path da instalação do SQL Server. Ou você consegue fazê-lo pelo java, utilizando uma conexão jdbc?

Planc

Creio que você esteja equivocado, quem está postando coisas inúteis aqui e não está pesquisando e você.
Comentários como “up”, “sobe”, “ahhhhhhhhhhhhhhhhh” e afins, bem como “pelo amor de Deus”, “ajuda”, “vida ou morte”, “to deprimido já” não irão te ajudar a ter respostas mais rapidamente.

Melhor nem continuar… você ta afim de ver sangue mesmo. Quando foi que falei que você estava postando coisas inúteis?? você acabou de me ajudar falando sobre triggers!

Quanto ao comando, não… .não é somente em terminal do Windows. Eu posso executá-lo como qualquer outro comando(ex: select * from sysobjects).

Criado 29 de outubro de 2012
Ultima resposta 29 de out. de 2012
Respostas 6
Participantes 2