proteccion cuarto parametro

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
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 -
'
'Esta funcion la usaremos 1 vez para crear la propiedad



Private Function CREARshift ()
    Dim Prp As DAO.Property
    Set Prp = CurrentDb.CreateProperty("AllowBypassKey", dbBoolean, True, True)
    CurrentDb.Properties.Append Prp

Msgbox “fin Crear”
End Function

'Esta funcion la usaremos para cambiar el estado de la propiedad
Private Function ONOFFshift()
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.

[Atrás]