Access

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:

Y en ese artículo mencioné:

Codifique la base de datos para cerrar si no se ejecuta en el directorio adecuado

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.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba