[firebase-br] Assunto: Re: Sobre a trigger para acesso ao db

luapfirebird em yahoo.com.br luapfirebird em yahoo.com.br
Ter Mar 19 15:58:38 -03 2019


Então colega de uma testada aí pois eu não consegui desativar uma trigger no OnComnect de teste que fiz,  não sei se no FB 3.0 esse comando não existe mais. 
isql Nome_BancoDados.fdb -user SYSDBA -pass masterkey -nodbtriggers SQL> ALTER TRIGGER Nome_Trigger INACTIVE; SQL> EXIT;




Enviado do Yahoo Mail no Android 
 
  <div>Em ter, 19 19e mar 19e 2019 às 15:57, luapfirebird em yahoo.com.br</div><div><luapfirebird em yahoo.com.br> escreveu:</div>   Então colega de uma testada aí pois eu não consegui desativar uma trigger no OnComnect de teste que fiz,  não sei se no FB 3.0 esse comando não existe mais. 
isql Nome_BancoDados.fdb -user SYSDBA -pass masterkey -nodbtriggers SQL> ALTER TRIGGER Nome_Trigger INACTIVE; SQL> EXIT;







Enviado do Yahoo Mail no Android 
 
  <div>Em ter, 19 19e mar 19e 2019 às 14:07, Gabriel Bonzanini</div><div><gabriel.bonzanini em gmail.com> escreveu:</div>   Pois é. No tópico de discussão, através do Cantú, descobri este parâmetro -nodbtriggers que realmente faz com que a trigger não seja executada.
Não entendo o porquê de não existir um usuário/senha no banco de dados em si, apenas no gerenciador. Ao meu ver, o quesito 'segurança' é o ponto mais fraco do Firebird.
Em ter, 19 de mar de 2019 às 11:39, luapfirebird em yahoo.com.br <luapfirebird em yahoo.com.br> escreveu:

 Me diga e se usar o seguinte codigo ::
https://www.devmedia.com.br/desativando-database-triggers-na-conexao-do-firebird/20317

isql Nome_BancoDados.fdb -user SYSDBA -pass masterkey -nodbtriggers SQL> ALTER TRIGGER Nome_Trigger INACTIVE; SQL> EXIT;
isso não invalida todo o seu trabalho ?
Agora me desculpa mais eu ainda não entendi como você passa o parâmetro para identificar que é seu sistema que está acessando o Banco de Dadosvocê poderia me explicar melhor como essa UDF faz a magica ?
Grato.




    Em terça-feira, 19 de março de 2019 08:35:13 BRT, Gabriel Bonzanini <gabriel.bonzanini em gmail.com> escreveu:  
 
 Bom dia.
O que eu faço é basicamente criar uma trigger no ON CONNECT que testa uma condição. No meu caso, a condição é uma função com retorno integer, criada dentro de uma UDF (dll) própria, que retorna um valor "combinado" com o banco de dados; um tipo de senha digamos. Utilizo uma UDF pois os recursos no SQL são bem escassos se comparados aos de uma linguagem de programação "completa".
O que será testado na função da UDF para retornar o valor combinado ou não fica à teu critério, podendo ser a existência de um arquivo, de uma chave de registro, etc., indicando que foi teu sistema que chamou a conexão.

SET TERM !! ;

 
CREATE OR ALTER TRIGGER T_DB_CONTROL
ACTIVE ON CONNECT
AS
DECLARE VARIABLE PERMISSAO INTEGER;
BEGIN
  SELECT DB_CONTROL() FROM RDB$DATABASE
  INTO :PERMISSAO;
  IF(PERMISSAO <> 33279) THEN
    EXCEPTION ACESS_DENIED;
END!!

 
SET TERM ; !!

Abraço.
Em seg, 18 de mar de 2019 às 11:14, luapfirebird em yahoo.com.br <luapfirebird em yahoo.com.br> escreveu:

 
 Jovem achei interessante sua ideia porém tentei fazer e não consegui você poderia me passar um exemplo dessa trigger para proteger o banco de dados 

Grato.  
  
  
  



Mais detalhes sobre a lista de discussão lista