
Comprensión y administración de Microsoft Access Shift Bypass
Microsoft Access Shift Bypass es una característica que permite a los usuarios abrir una base de datos de acceso sin ejecutar opciones de inicio o macros Autoexec. Esta funcionalidad puede ser crucial para los desarrolladores y administradores, pero puede presentar riesgos de seguridad en aplicaciones implementadas.
Cómo funciona el bypass de turno
Al abrir una base de datos de Microsoft Access, los usuarios pueden mantener presionada la tecla de cambio para evitar las propiedades de inicio y la macro AutoExec. Esta característica es particularmente útil para la resolución de problemas y el acceso a bases de datos que podrían tener errores en su código de inicio.
Deshabilitar el bypass de cambio a través de la propiedad de la base de datos de IlowByPassKey
Por defecto, Shift Bypass está habilitado en todas las bases de datos de Microsoft Access. Sin embargo, es posible deshabilitar esta funcionalidad estableciendo la propiedad de la base de datos TailTByPassKey.
Lamentablemente, la propiedad de IlmoByPassKey no es accesible de ninguna manera a través de la GUI y debe configurarse a través del código VBA.
La propiedad de tampybypasskey es una propiedad booleana donde:
Valor de propiedad | Descripción del efecto |
---|---|
Verdadero | Shift Bypass está permitido/habilitación (sin garantía) Estado predeterminado de una base de datos de acceso |
FALSO | Shift bypass está deshabilitado (asegurado) |
Determinación del valor actual de la propiedad de TailTbyPassKey
Para validar el valor actual de la propiedad de TISHBYPASSKEY para la base de datos actual, simplemente podemos hacer algo como:
Function Local_GetAllowBypassKey() As Boolean Dim oDb As DAO.Database On Error GoTo Error_Handler Set oDb = CurrentDb Local_GetAllowBypassKey = oDb.Properties("AllowBypassKey") Error_Handler_Exit: On Error Resume Next Set oDb = Nothing Exit Function Error_Handler: If Err.Number = 3270 Then ' Property not found Local_GetAllowBypassKey = True 'If not set, it is allowed/True Else MsgBox "The following error has occurred" & vbCrLf & vbCrLf & _ "Error Source: Local_GetAllowBypassKey" & vbCrLf & _ "Error Number: " & Err.Number & vbCrLf & _ "Error Description: " & Err.Description & _ Switch(Erl = 0, "", Erl <> 0, vbCrLf & "Line No: " & Erl) _ , vbOKOnly + vbCritical, "An Error has Occurred!" End If Resume Error_Handler_Exit End Function
Recordando el hecho de que si la propiedad no existe, entonces eso es lo mismo que tenerlo establecido en verdadero.
Configuración del valor de la propiedad de TailTbyPassKey
Si deseamos establecer el valor, entonces podemos modificar lo anterior a algo más como:
Sub Local_SetAllowBypassKey(bAllowBypassKey As Boolean) Dim oDb As DAO.Database Dim oProp As DAO.Property On Error GoTo Error_Handler Set oDb = CurrentDb oDb.Properties("AllowBypassKey") = bAllowBypassKey Error_Handler_Exit: On Error Resume Next Set oProp = Nothing Set oDb = Nothing Exit Sub Error_Handler: If Err.Number = 3270 Then ' Property not found, so create it and add it to the db Set oProp = oDb.CreateProperty("AllowBypassKey", dbBoolean, bAllowBypassKey) oDb.Properties.Append oProp Else MsgBox "The following error has occurred" & vbCrLf & vbCrLf & _ "Error Source: Local_SetAllowBypassKey" & vbCrLf & _ "Error Number: " & Err.Number & vbCrLf & _ "Error Description: " & Err.Description & _ Switch(Erl = 0, "", Erl <> 0, vbCrLf & "Line No: " & Erl) _ , vbOKOnly + vbCritical, "An Error has Occurred!" End If Resume Error_Handler_Exit End Sub
Dónde deshabilitar el cambio de cambio y «asegurar» su base de datos antes de la distribución a sus usuarios finales, simplemente lo haríamos:
Local_SetAllowBypassKey False
Y para volver a habilitar el cambio de paso, lo haríamos:
Local_SetAllowBypassKey True
Shift Bypass Propiedad Utilidad de configuración
Hace un tiempo creé una utilidad para poder administrar esta propiedad de forma remota para varias bases de datos. Por lo tanto, adapté el código anterior para que funcione con bases de datos remotas y creé un formulario simple para seleccionar y administrar la propiedad desde:
Recientemente lo pulí un poco y lo proporcioné a continuación para su uso.
Descargo de responsabilidad/Notas:
Si no tiene Microsoft Access, simplemente descargue e instale la versión de tiempo de ejecución disponible libremente (esto permite ejecutar bases de datos de MS Access, pero no modificar su diseño):
Tiempo de ejecución de Microsoft Access 2010
Tiempo de ejecución de Microsoft Access 2013
Tiempo de ejecución de Microsoft Access 2016
Microsoft 365 Access Runtime
Todas las muestras de código, descargar muestras, enlaces, … en este sitio se proporcionan ‘Como es‘.
En ningún caso Devhut.net o Carda Consultants Inc. serán responsables ante el cliente/usuario final o cualquier tercero por cualquier daño, incluidas las ganancias perdidas, los ahorros perdidos u otros daños incidentales, consecuentes o especiales que surgen de la operación de la operación de o incapacidad para operar el software que Carda Consultants Inc. ha proporcionado, incluso si Carda Consultants Inc. ha sido informado de la posibilidad de tales daños.
Descargar una base de datos de demostración
Siéntase libre de descargar una copia 100% desbloqueada de demostración (ACCDB) utilizando el enlace proporcionado a continuación:
Descargue «Utilidad de configuración de propiedad de bypass de cambio» Shiftbypass.zip – Descargado 0 veces – 101.77 KB
También tenga en cuenta que aunque la base de datos de demostración es un archivo ACCDB, el mismo formulario/código exacto funcionará igualmente en un archivo MDB y puede interactuar con los archivos MDB tal como está.
Pensamientos finales
Es importante tener en cuenta que al deshabilitar el bypass Shift puede disuadir a los usuarios casuales de evitar las opciones de inicio, no es una solución de seguridad integral. Los usuarios determinados con conocimiento suficiente aún pueden encontrar formas de eludir estas restricciones al volver a habilitar la propiedad.
Entonces, si bien la función Bypass Shift en Microsoft Access es una herramienta valiosa para los desarrolladores, no es un medio infalible y debería ser parte de un enfoque de seguridad más grande.
Recursos sobre el tema

Historial de la página
Fecha | Resumen de cambios |
---|---|
2025-02-06 | Lanzamiento inicial |