
Cómo restringir una base de datos de acceso para que solo se ejecute desde una carpeta específica
Hace un tiempo, discutí la contraseña protegiendo una base de datos:

Continuar leyendo
Y en ese artículo mencioné:
Hoy, pensé en explicar cómo se puede hacer esto.
Asegurar una base de datos requiere un enfoque múltiple. Debido a que Microsoft es un archivo plano y se puede copiar y tomar fácilmente fuera del sitio, puede ser importante considerar agregar una medida para bloquearlo de manera que solo se ejecutará en un directorio específico. De esta manera, incluso si se toma, la base de datos simplemente no se ejecutará.
¡La excelente noticia aquí es el hecho de que configurar dicha función de seguridad es relativamente fácil y solo requiere unas pocas líneas de código!
Ruta de carpeta codificada
Simplemente podemos comparar la ruta de la base de datos actual con la ruta designada y si no coinciden, cierre la base de datos. Para hacerlo, podríamos usar un procedimiento como:
Public Function IsRunningInDesignatedFolder() As Boolean Const sDesignatedFolder = "C:\Databases\CARDA\Demos\Security" If CurrentProject.Path <> sDesignatedFolder Then 'MsgBox "This database must be run from the designated folder.", vbCritical Or vbOKOnly Application.Quit End If IsRunningInDesignatedFolder = True End Function
Ahora que tenemos un procedimiento de la validación, necesitamos que se ejecute automáticamente cuando se inicia la base de datos, para hacerlo, para que podamos emplear un par de soluciones diferentes que incluyen:
- Llamarlo como parte de la rutina AutoExec
- Haciendo que se ejecute al abrir el ‘Formulario de visualización’ de la base de datos
A continuación de una plantilla del enfoque general que tomo para mi macro autoexec. Utilizo mi macro autoexec para ejecutar una función pública ‘inicio’ que coloco en un módulo separado. La función de inicio se parece un poco:
Public Function StartUp() 'Check User is allowed 'Check Designated Folder Call IsRunningInDesignatedFolder 'Compact Db 'Backup Db 'Relink Tables 'Launch Login or Menu End Function
Como puede ver, realizar la verificación de la carpeta sería una de las primeras cosas que haría tan pronto como se ejecute el código.
Al implementar este tipo de medida, puede bloquear de manera efectiva su base de datos de acceso para ejecutar solo desde una carpeta específica, mejorando aún más la seguridad y el control sobre el entorno de su aplicación.