Foros del Web » Soporte técnico » Ofimática »

Proteger diseño de consultas en Access.

Estas en el tema de Proteger diseño de consultas en Access. en el foro de Ofimática en Foros del Web. Antes que nada un saludo a los participantes de este foro. ¿Quería saber si existe alguna forma de proteger el diseño de las consultas en ...
  #1 (permalink)  
Antiguo 01/01/2009, 13:37
 
Fecha de Ingreso: enero-2008
Mensajes: 9
Antigüedad: 16 años, 3 meses
Puntos: 0
Proteger diseño de consultas en Access.

Antes que nada un saludo a los participantes de este foro.

¿Quería saber si existe alguna forma de proteger el diseño de las consultas en una aplicación de Access a fin de evitar que los usuarios puedan modificarlas? En principio tengo las siguientes alternativas, pero ninguna es lo suficientemente segura:

1.- Asignar la propiedad “oculta” a las consultas. Su inconveniente es que cualquier usuario puede ir a Herramientas >> Opciones >> Mostrar objetos ocultos.

2.- Puedo desactivar la opción “Presentar la Ventana Base de Datos” en Herramientas >> Inicio. Su desventaja es que si el usuario mantiene presionada la tecla Shift al abrir la aplicación, se muestra la Ventana Base de Datos con todas sus tablas, consultas, etc.

3.- Convertir la aplicación en un archivo MDE, sólo protege los formularios, informes, páginas de acceso a datos y módulos, pero las tablas, consultas y macros quedan desprotegidas y se pueden modificar.

En este mismo foro encontré una función que permite ocultar las tablas sin la posibilidad de mostrarlas nuevamente utilizando Herramientas >> Opciones >> Mostrar objetos ocultos. Me pregunto si existe alguna función similar que se pueda aplicar a todas las consultas u otra alternativa para proteger su diseño.

Estas son las funciones que encontré, pero que se aplican a las tablas:

Public Function OcultaTodasTablas()
Dim Tb As TableDef



For Each Tb In CurrentDb.TableDefs
Tb.Attributes = 1

Next


End Function


Public Function MuestraTodasTablas()
Dim Tb As TableDef

For Each Tb In CurrentDb.TableDefs
If Mid(Tb.Name, 1, 4) = "Msys" Then
Else
Tb.Attributes = 0
End If

Next
End Function


De antemano, gracias por su colaboración.
  #2 (permalink)  
Antiguo 03/01/2009, 13:47
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Proteger diseño de consultas en Access.

Tema trasladado a Ofimatica.
  #3 (permalink)  
Antiguo 05/01/2009, 03:45
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 8 meses
Puntos: 18
Respuesta: Proteger diseño de consultas en Access.

Mediante el siguiente código se puede eliminar las entradas indeseadas con la tecla shift.

si no se entra con la clave indicada, se anula la entrada con la tecla shift, y entrando con la clave se activa para la próxima vez que se entre.

Private Sub Form_Open(Cancel As Integer)
Dim f As Date
Dim hoy As Date
Dim usr As String

usr = InputBox("Introduzca el nombre de usuario", "Usuario", "Pepito de los Palotes")

If usr <> "*** MI CLAVE SECRETA ***" Then
AlterarPropriedade "AllowBypassKey", dbBoolean, False
Else
AlterarPropriedade "AllowBypassKey", dbBoolean, True
End If
' Bomba de tiempo
' f = "1/1/2005"
' hoy = Date
'
' If hoy > f Then
' MsgBox "producto en fase demo"
' DoCmd.Quit
' Else
' DoCmd.Close acForm, "inicio"
' End If
DoCmd.Close acForm, "inicio"
End Sub

Public Function AlterarPropriedade(strPropName As String, varPropType As Variant, varPropValue As Variant) As Integer
Dim dbs As dao.Database, prp As dao.Property

Const conPropNotFoundError = 3270
Set dbs = CurrentDb
On Error GoTo Change_Err
dbs.Properties(strPropName) = varPropValue
AlterarPropriedade = True
Change_Bye:
Exit Function
Change_Err:
If Err = conPropNotFoundError Then ' Propiedad no ha sido localizada.
Set prp = dbs.CreateProperty(strPropName, varPropType, varPropValue)
dbs.Properties.Append prp
Resume Next
Else
' Error desconocido.
AlterarPropriedade = False
Resume Change_Bye
End If
End Function


Tienes que activar la libreria Microsoft DAO 3.6 object library
Un saludo
  #4 (permalink)  
Antiguo 05/01/2009, 03:56
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 8 meses
Puntos: 18
Respuesta: Proteger diseño de consultas en Access.

Ocultar las consultas asi como se hace con las tablas, con las funciones que expones, no es posible, al menos no lo conozco. Sobre seguridad se puede encontrar mucho, pero parcticamente todo se puede violar por un usuario experto.

Si te precoupa mucho la seguridad de las consulta, quieza te sirva saber que hay se puede no tener ninguna consulta "fiscamente", como objeto, y generarlas por codigo cada vez que la necesites. Yo lo tengo en lagunos sitios, solo una consulta comodin, y cada ez que necesito una la genero por codigo, y le asigno a esta consulta comodin la sql.

Pero igual es complicrase, si te vale con lo del shift

Un saludo
  #5 (permalink)  
Antiguo 16/11/2009, 15:45
 
Fecha de Ingreso: mayo-2009
Mensajes: 1
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Proteger diseño de consultas en Access.

Excelente el còdigo expuesto por Taribo. Que Dios te bendiga y que podamos ayudarnos. Hasta luego.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 06:42.