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

luapfirebird em yahoo.com.br luapfirebird em yahoo.com.br
Ter Mar 19 11:38:52 -03 2019


 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