6- Protección con el Cuarto Parámetro
Autor: Marius Puig
En Access tenemos la propiedad AllowBypassKey que nos permite activar a (True) o desactivar (False) el comportamiento de Access al abrir una MDB o MDE.
Si esta propiedad está en True (o no está creada) y mantenemos pulsada la tecla Shift al abrir una MDB/MDE, podremos saltarnos las propiedades de inicio y la macro autoexec. Si esta en False no podremos saltarnos esas propiedades o la macro.
Para crear esta propiedad usamos el método CreateProperty de la siguiente forma:
CreateProperty("allowbypasskey", dbBoolean, True) CreateProperty(propiedad, tipo, valor, DDL ) Normalmente omitimos el 4º cuarto parámetro (DDL quedará = False), de este modo estamos permitiendo que a través de código se pueda acceder a la propiedad y cambiarla, sin importar que usuario está accediendo a esta propiedad.
Si queremos que esta propiedad no pueda ser cambiada, salvo por el usuario que la creo, lo podemos hacer de la siguiente forma:
Necesitamos un grupo de trabajo -MDW- y un usuario (p.e. Usuario Shift ) distinto del Administrador que es el que viene por defecto. (ver Curso de Seguridad)
1- Nos uniremos a un grupo de trabajo (MDW) ¡!!!
2- Hacemos el login con el usuario UsuarioShift 3- Creamos una nueva base de datos 4- En permisos: objeto Base de datos * denegamos Administrar a todos los usuarios/grupos excepto al UsuarioShift 5- Creamos un modulo con las siguientes funciones:
'En referencias tiene que estar marcada DAO) ' - estas funciones las podemos ejecutar situando el cursor y pulsando F5
Private Function
CREARshift()
' Esta funcion la
usaremos 1 vez para crear la propiedad
Dim Prp As DAO.Property
Set Prp = CurrentDb.CreateProperty("AllowBypassKey",
dbBoolean, True, True)
CurrentDb.Properties.Append Prp
MsgBox "fin Crear"
End Function
Private Function ONOFFshift()
' Esta funcion la
usaremos para cambiar el estado de la
propiedad
CurrentDb.Properties("AllowBypassKey") =
Not CurrentDb.Properties("AllowBypassKey")
MsgBox "fin ONOFF"
End Function
IMPORTANTE !! 1 - Ejecutamos las dos funciones (1 vez) y ya tenemos la propiedad AllowBypassKey "segura". Antes de crear OBJETOS 2 - Creamos un formulario y lo establecemos como inicial.
Si salimos de access y volvemos a entrar con el login del usuario Administrador comprobaremos que al intentar ejecutar la funcion ONOFFshift nos indicará que no tenemos permisos suficientes. La única forma de desactivar/activar esta propiedad será mediante el UsuarioShift.
Nota: Este proceso solo es para asegurar una propiedad de Access, como complemento a otros métodos que usemos para dar mas seguridad a nuestras bases de datos.