Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   como atrapar en trigger la contraseña del sysdba (https://www.clubdelphi.com/foros/showthread.php?t=71313)

Tcmn 13-12-2010 00:41:59

como atrapar en trigger la contraseña del sysdba
 
Hola uso Delphi6, IBExpert, Firebird 2.1 y los IBX en winXP y he estado buscando como proteger mi bd Firebird 2.1 de intrusos. Descubri que con reintstalar firebird puede volver a conectarse con la bd y hacer lo que quieran con los datos de todas las opciones publicadas que vi, me gusto mas la que da XANDER aqui:
http://www.clubdelphi.com/foros/showthread.php?t=58927

el dice:
Cita:

Es fácil lo que quieres hacer si usas los triggers de la base de datos Before/After Connect, pero solo con firebird 2.1 en adelante...

En estos triggers puedes validar que el usuario que pretende conectarse sea válido para ti y si no lo es el lanzamiento de una excepción en los triggers evita que el intruso llegue más allá.
como soy nuevo con firebird he estado intentado hacer eso busque documentacion con triggers y a lo mas que llegue fue a:

BEFORE CONNECT:
Código SQL [-]AS begin if (password<>'ContrasenaMia') then //Aqui es mi duda exception sysdbaerror /* Trigger text */ end

donde ContrasenaMia es la que quiero manejar en esa BD para que aunq reinstalen Firebird no funcione masterkey y Código SQL [-]exception sysdbaerror

es una excepcion segun yo para no permitir que se conecte a BD y envie mensaje de error.

El problema es que no se como saber que contraseña esta usando el que quiere conectarse.

Gracias de antemano

Tcmn 23-01-2011 23:41:46

Me respondo a mi mismo.
Yo use ibexpert y ahi solo genero el trigger y aunque no encontre como validar la contraseña. Si encontre como validar el nombre del usuario que se esta conectando a la base de datos. Solo es una comparacion:


Código SQL [-]
create trigger tr_connect
  on connect
as
begin
if currrent_user<>'SYSDBA' then
/*Aqui ira lo que quiera que haga la bd si se cumple la condicion*/
end
Espero sea util a novatos como yo

rastafarey 27-01-2011 00:40:15

Resp
 
No entiendo de qu emanera la quieres proteger. Si es solo que la uses desde tu aplicacion u otra cosa. Si es que solo se pueda usar desde tu aplicion. Puedes hacer que cuando tu aplicacion se conecte introduzca uan variable de session y en los disparadores verificas si existe o la varia ble tiene el valor que te interesa sino mandas una exception. pero debes proteger el codigo de estos triger borrando el scrip y delando solo la parte compilada.


La franja horaria es GMT +2. Ahora son las 18:33:33.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi