Bueno:
Yo os explico el problema desde el principio y me decis donde me equivoco o me pierdo. Ya os he dicho que estoy empezando....
El acceso a la base de datos desde mi aplicacion en Visual Basic debe comportarse de forma diferente dependiendo de que usuario trate de acceder (problema bastante comun). La base de datos es una base de Datos Access 2000 que trabaja en local, en el mismo PC donde estara la aplicacion. Yo accedo a ella directamente con el driver del Motor Jet de Windows/Visual Basic.
BaseDeDatos.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" _
& App.Path & "/Data/DB.mdb;"
Como la base de Datos va ha estar en local, pense que debería proteger el fichero (la base de datos como tal). Tras paparme un poco de ayuda y rebuscar por internet (ya que no he tirado nunca mucho de Access) encontre lo de la gestion de usuarios y grupos de Access.
Dije "perfecto! todo solucionado". Cree, una cuenta de usuario 'administrador' con todos los permisos y una cuenta 'consulta' con permisos restringidos (solo consultas, como su propio nombre indica)
Esto fue bastante bien. Cuando intentaba abrir el fichero (de forma externa a mi aplicación. Simplemente doble click sobre el icono) Access me pedia nombre de usuario y password.
Pense que ya estaba todo arreglado. Luego trate de abrir la base de datos desde mi aplicacion y resulto qeu indicando el nombre de usuario y el pass, el visual se cascaba un error diciendo que faltaba un fichero de gestion de usuarios.
Cuando descubri lo que era eso, vi que era una cagada, ya que si la gestion de usuarios y grupos esta en otro fichero, con borrar ese fichero, la puerta hacia mi base de datos estaba abierta (no hace falta ser hacker para hacer esto). A pesar de todo segui a delante y cree el fichero .vbw .
No consegui acceder a la base de datos usando un usuario. Siempre me resultaba el mismo error.
Luego pude ver que en cualquiera de los casos (con politica de usuarios y grupos, con fichero .vbw, sin el, de cualquier modo) no puedo acceder poniendo explicitamente el nombre de usuario y password pero SIEMPRE puedo acceder directamente sin ponerlo.
¡Que gracioso!
Finalmente opte por la solución que no queria utilizar desde el princio que es incluir el password que da los permisos en una tabla de la BD y gestionar esos permisos desde mi aplicación. Lo cual no protege nada, ya que si alguien quiere modificar la Base de datos solo tiene que hacer doble click sobre el fichero en cuestion y modificar lo que quiera. Le puse una clave como antes para que por lo menos no pudiesen hacer esto. Pero ahora, el administrador necesita saber la clave que protege el fichero que no tiene porque coincidir con la que hay en la tabla "password" ya que esta segunda se puede cambiar. No es el mayor problema ya que en principio nunca debería hacer falta trabajar sobre el fichero directamente abriendolo con access
De todos modos esto sigue asi porque hasta donde he podido ver. Las bases de datos Access son de todo menos seguras ni comodas.
Ahora, tengo que trabajar el doble al hacer mi aplicación para gestionar de forma externa los permisos para los usuarios (al menos que alguien me clarifique el camino y me de una solucion) y además estoy seguro que si alguna persona que no tiene permisos se propone conseguirlos, no le sera muy dificil aunque no tenga ni idea de informatica.
Esta es la forma mas segura que he encontrado para la base de datos. Clave en una tabla y fichero con usuarios y protegido con Clave.
Saludos