Seguridad de acceso/tablas en base de datos Access
Ante todo darte las gracias por prestarte a ayudar desinteresadamente en este medio tan interesante.
Tengo una base de datos en Access 2003 que he desarrollado durante dos años, que utilizan varias personas en una oficina y cuya complejidad me hace descartar comenzar esta de nuevo con la ayuda de otros lenguajes de programación. El no prever la escalabilidad de la misma (todo empezó como algo sencillo para resolver un problema puntual y ahora es pilar fundamental en la empresa), me ha llevado al tremendo problema de seguridad actual:
He protegido formularios e informes convirtiendo la BD a MDE. He protegido lo que cada usuario puede hacer creando una tabla oculta con usuario y contraseña y los permisos que cada uno tiene. Cada formulario revisa en esta tabla los permisos y hace visibles o no los botones que procedan. Funciona todo de maravilla.
El problema: Si cualquiera abre la base de datos pulsando el shift, va a herramientas/opciones y hace visibles los objetos ocultos, abre la tabla usuarios, quita la máscara de "contraseña", puede acceder con cualquier usuario y envía al traste toda la poca seguridad de la base de datos. Además, no me interesa que nadie se pueda llevar los datos en un pen y los despiece en casa.
¿Cómo puedo evitarlo? He leído bastante sobre esto pero no sé si alguna solución funcionaria:
- ¿Crear una aplicación autoinstalable con el empaquetador de Office?
- ¿Trasladar mis tablas a un servidor con el asistente para convertir a SQL Server?
- ¿Seguridad por usuarios de Access con los archivos MDW?
- ¿Alguna forma de proteger en Windows el archivo que contiene las tablas de manera que únicamente la aplicación pueda leer datos sin que se puedan abrir las tablas?
- ¿Alguna opción en Access para que no puedan editarse las tablas (he probado bloquear su modificación, pero pueden abrirse, eliminarse la máscara y ver las contraseñas aunque luego no te deje guardarlas)?
- ¿Alguna otra solución que no haya pensado que pueda funcionar?
En definitiva, necesito que se pueda ejecutar la aplicación como hasta ahora, pero que nadie pueda modificar el diseño de las tablas excepto yo para que no pueda averiguar las contraseñas de acceso que he establecido.
Sé que elegí mal la aplicación si lo que quiero es seguridad, pero ahora tengo que buscar algún remedio, si es que existe...
Tengo una base de datos en Access 2003 que he desarrollado durante dos años, que utilizan varias personas en una oficina y cuya complejidad me hace descartar comenzar esta de nuevo con la ayuda de otros lenguajes de programación. El no prever la escalabilidad de la misma (todo empezó como algo sencillo para resolver un problema puntual y ahora es pilar fundamental en la empresa), me ha llevado al tremendo problema de seguridad actual:
He protegido formularios e informes convirtiendo la BD a MDE. He protegido lo que cada usuario puede hacer creando una tabla oculta con usuario y contraseña y los permisos que cada uno tiene. Cada formulario revisa en esta tabla los permisos y hace visibles o no los botones que procedan. Funciona todo de maravilla.
El problema: Si cualquiera abre la base de datos pulsando el shift, va a herramientas/opciones y hace visibles los objetos ocultos, abre la tabla usuarios, quita la máscara de "contraseña", puede acceder con cualquier usuario y envía al traste toda la poca seguridad de la base de datos. Además, no me interesa que nadie se pueda llevar los datos en un pen y los despiece en casa.
¿Cómo puedo evitarlo? He leído bastante sobre esto pero no sé si alguna solución funcionaria:
- ¿Crear una aplicación autoinstalable con el empaquetador de Office?
- ¿Trasladar mis tablas a un servidor con el asistente para convertir a SQL Server?
- ¿Seguridad por usuarios de Access con los archivos MDW?
- ¿Alguna forma de proteger en Windows el archivo que contiene las tablas de manera que únicamente la aplicación pueda leer datos sin que se puedan abrir las tablas?
- ¿Alguna opción en Access para que no puedan editarse las tablas (he probado bloquear su modificación, pero pueden abrirse, eliminarse la máscara y ver las contraseñas aunque luego no te deje guardarlas)?
- ¿Alguna otra solución que no haya pensado que pueda funcionar?
En definitiva, necesito que se pueda ejecutar la aplicación como hasta ahora, pero que nadie pueda modificar el diseño de las tablas excepto yo para que no pueda averiguar las contraseñas de acceso que he establecido.
Sé que elegí mal la aplicación si lo que quiero es seguridad, pero ahora tengo que buscar algún remedio, si es que existe...
Respuesta de numerobix PlanetaInformatico.es
1