Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   base de datos access en Red (https://www.clubdelphi.com/foros/showthread.php?t=29144)

Nbull 13-01-2006 11:30:33

base de datos access en Red
 
Hola a tod@s , tengo una aplicación en Delphi 7 con componentes Ado, la base de datos es Access y esta en un servidor.Me conecto ha ella a traves de ODBC.Mi pregunta es: ¿Como puedo evitar que cuando el usuario arranque mi aplicación este pueda ver la carpeta donde esta alojada mi base de datos?

No se si me he explicado bien, lo que quiero es que mi aplicación al conectarse al servidor no abra una conexión visible del archivo en el explorador de windows, por que no quiero que el usuario pueda ver el archivo mdb para que no lo pueda modificar directamente, ni copiar ni borrar.Es decir, que la base de datos solo sea visible para mi aplicación y los cambios que se hagan en la base de datos solo se hagan desde mi aplicación.

Por que mi aplicación de momento cuando se conecta con la base de datos si yo voy a conexiones de red y miro puedo entrar a la carpeta donde esta la base de datos y modificarla copiarla o incluso borrarla.

¿Como puedo evitar esto?¿Deberia usar otro proveedor en el adoconnection(Ahora uso ODBC)?

Un saludo y muchas gracias por la ayuda que siempre me prestais.

Neftali [Germán.Estévez] 13-01-2006 11:39:39

Cita:

Empezado por Nbull
una aplicación en Delphi 7 con componentes Ado y la base de datos es Access y esta en un servidor.Me conecto ha ella a traves de ODBC.

No tiene nada que ver con la pregunta, pero me ha llamado la atención. Usas Access, Delphi con componentes nativos (ADO) y ¿luego te conectas vía ADO? ¿Porqué no utilizas Jet4, como sería lo lógico?


Cita:

Empezado por Nbull
¿Como puedo evitar que cuando el usuario arranque mi aplicación este pueda ver la carpeta donde esta alojada mi base de datos?
...lo que quiero es que mi aplicación al conectarse al servidor no abra una conexión visible del archivo en el explorador de windows

No puedes evitar eso; Lo único que se me ocurre para evitar que vean o modifiquen los datos es que a la Base de Datos le definas seguridad o le coloques contraseña, y te conectes vía ADO utilizando esa contraseña.

INCONVENIENTES: No impides que la borren, y alguien con algunos conocimientos podrá abrir la Base de Datos igualmente aunque tenga contraseña.

Para lo que necesitas, debes cambiar a un SBGD; Un Gestor de Bases de Datos con estructura Cliente-Servidor. FireBird, InterBase, SQL Server, MySQL,...

Nbull 13-01-2006 11:50:29

Gracias por contestar tan rapido Neftalí, ¿es dificil migrar mi aplicación a Mysql? nunca he programado con bases de datos Cliente-servidor que cambios tendria que realizar a mi aplicación.Y ¿como migraria la base de datos Access a MySql?Supongo que sera bastante complicado de explicar, pero, si me dieses unas nociones de por donde he de empezar te estaria agradecido.

Gracias y un saludo.

Neftali [Germán.Estévez] 13-01-2006 12:19:03

Sólo para probar, y dado que te estás conectando vía ODBC, supongo que podrías exportar tu Base de Datos Access a MySQL, utilizando algun programa de DataPump (Delphi trae uno); Luego intentar cambiar la conexión ODBC para apuntar a MySQL y ver qué pasa (como he dicho, sólo para probar).

Para hacerlo bien, supongo que deberías cambiar los componentes de conexión por algunos "nativos" que permitan conectar "directamente" a MySQL (no he trabajado con MySQL, así que ahí no te puedo ayudar mucho).

Nbull 13-01-2006 12:19:27

Por cierto se me olvido responderte, el echo de que use ODBC en lugar de Jet es que cuando usaba Jet mi aplicación me decia que no tenia permisos para abrir la base de datos, me pase a ODBC por que hay puedo poner la contraseña del servidor y autentificarme,pense que asi me funcionaria, pero, me sigue pasando y no se como lo puedo solucionar.Asi que la razón de que use ODBC es pereza de realizar los cambios que me exige pasarme a JET de nuevo.:rolleyes:

Si voy a conexiones de red y me logueo en el servidor, mi aplicación funciona a las mil maravillas pero, si no me logueo antes no funciona, puse otro hilo con este tema, pero nadie me supo dar solución a ver si me puedes hechar una mano Neftalí, por que no tengo ni idea de que esta pasando.

Por cierto las maquinas donde instalaré mi aplicación son Windows Xp y el servidor es un NT 4, supongo que el problema estara hay.Y no se como solucionarlo.

Pd:Acabo de ver tu respuesta me pillaste escribiendo.He pensado que protegere la base de datos con contraseña, y cada vez que cierren mi aplicación hare un copia de seguridad para evitar usuarios pillos que modifiquen cosas directamente en la base de datos.Eso si consigo solucionar lo de los permisos.

Nbull 13-01-2006 12:31:49

Me gustaria que me saliese el login promt del servidor, para que introduzcan la contraseña cada vez que usen mi aplicación.He pensado que a lo mejor puedo forzar eso antes de que el adoconnection se conecte a la base de datos, asi al estar ya logados no me daria error de permisos.

¿Piensas que es viable?si lo es¿Como lo puedo hacer?


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

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