PDA

Ver la Versión Completa : disparadores en firebird


gina
05-02-2008, 23:36:40
Hola...Estoy administrando una base de datos en firebird 1.5, es la base de datos de una aplicacion que utilizo para hacer monitoreo de servidores, eso significa q no la cree yo. lo malo es que quiero extraer la informacion que genera una tabla llamada IPCLOG pero para no exponer ese equipo a internet entonces cree una BD en mysql y un programa en php para conectarlas, quiero saber si es posible que un disparador en la tabla IPCLOG pueda insertarme los datos a la tabla que tengo pero en mysql, es decir insertarlos a una tabla identica que esta en otra base de datos!
Alguien a hecho algo asi?
Les agradezco su colaboracion!!!
Si no fui clara me cuentan..........:)

gendelphi
06-02-2008, 01:21:49
Una forma que se me ocurre podría ser mediante eventos:

1. Defines uno o más triggers en tu BD firebird que dispare eventos según la acción que quieras realizar.
2. Programas una aplicación en Delphi (quizás un servicio que se inicie con Windows y siempre este activo) que intercepte dichos eventos y que reaccione de la forma que deseas, es decir, que manipule tu BD en MySQL.

jachguate
06-02-2008, 05:53:45
Hola.

No se exactamente que querés decir con "no exponer ese equipo al internet", pero quiero comentar que firebird es perfectamente accesible desde php, por lo que podrías tirar directamente de la base de datos en cuestión.

Un saludo.

;)

gina
06-02-2008, 14:10:10
Cuando digo no exponerlo a internet es por q en ese servidor esta la aplicacion de monitoreo y por seguridad es mejor que a esa maquina los usuarios de la aplicacion en php no puedan conectarse desde internet. Para eso hay una maquina en linux que es mas segura y ahi es donde esta la BD de mysql.:)

Chris
06-02-2008, 15:29:15
Hola gina (http://www.clubdelphi.com/foros/member.php?u=22205),
A forma de sugenrecia, Puedes implementar un UDF (que es más bien una dll), de está forma tendrías todo el poder de una aplicación cliente. Cuando se dispare el Trigger haz la llamada al la UDF, y por medio de la UDF replicas los cambios a tu DB en mySQL.

Por otro la lado, si hablamos de seguridad, la solución que te planteo sería adecuada, y por si las moscas, puedes bloclear el puerto 3050 que es el que utiliza el servidor firebird predeterminadamente.

Saludos.

jachguate
06-02-2008, 16:18:04
Cuando digo no exponerlo a internet es por q en ese servidor esta la aplicacion de monitoreo y por seguridad es mejor que a esa maquina los usuarios de la aplicacion en php no puedan conectarse desde internet. Para eso hay una maquina en linux que es mas segura y ahi es donde esta la BD de mysql.:)

Lo expuesto por D&W es perfectamente posible, aunque pienso que la aplicación php (ejecutándose en el servidor linux) puede conectarse directamente a la base de datos firebird sin que esto tenga por que representar necesariamente una vulnerabilidad de dicha base de datos.

Todo está en el cuidado que se ponga en desarrollar esta aplicación php, de manera que resulte segura.

De esta manera, el servidor de base de datos, nunca sería expuesto al internet.

Hasta luego.

;)