Access - Seguridad BackEnd

   
Vista:

Seguridad BackEnd

Publicado por Vicente (29 intervenciones) el 30/05/2009 12:14:54
Hola a todos:

El probema que se me plantea con Access 2007 es el siguiente:

Tengo una base de datos que he dividido. Me interesa hacerlo porque es para distribuirla entre distintos usuarios, que la van a utilizar en local, pero luego, para posibles revisiones de datos, me enviaran la base que contiene solo las tablas.
Así mismo, quiero proteger dicha base con contraseña y cifrado, la de las tablas, para que no la puedan abrir directamente y manipulen los datos.
Pues bien, al proteger la base de las tablas o backend, cuando abro la base de los formularios me dice que la contraseña de base de datos no es la correcta.
Ya vi hace años una aplicación desarrollada en la versión 2000, en la que los usuarios abrían el frontEnd sin problemas, pero si intentabas abrir la backEnd te pedía contraseña. Es como si al abrir la de los formularios, le pasara la contraseña automáticamente a la de las tablas y el usuario la abriera sin problemas, pero si intentaba abrir directamente la de las tablas, es cuando le pedía la contraseña.
Mi pregunta es ¿se puede hacer esto con Access 2007? y la siguiente pregunta lógica es ¿Como?

Muchas gracias por vuestra atención y saludos

Vicente
Valencia (España)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Seguridad BackEnd

Publicado por Jefferson (381 intervenciones) el 31/05/2009 02:58:07
Realmente yo no me enredo tanto al crear Back-End, lo digo al Vincular con clave, pues hay que activar las librerias si es con ADO o con DAO
Ademas del rollo para revincular si las mueven de ubicacion
para ello cree este codigo que es mas sencillo de usar, y a la postre cumple la misma funcion........

Function Abrir(Desactivo As Boolean, Ocultar As Boolean)
On Error GoTo Abrir_Error
'******************************************************************
'***** CODIGO CORTESIA DE JEFFERSON JIMENEZ **********************
'******************************************************************
'1)
'Oculto las tablas..............
Dim Tablas As TableDef
For Each Tablas In CurrentDb.TableDefs
If Ocultar = True Then
If Not (Tablas.Attributes And DB_HIDDENOBJECT) Then
Tablas.Attributes = Tablas.Attributes + DB_HIDDENOBJECT
End If
Else
If (Tablas.Attributes And DB_HIDDENOBJECT) Then
Tablas.Attributes = Tablas.Attributes - DB_HIDDENOBJECT
End If
End If
Next
'2)
'nos sercioramos que la Base de Datos este Abierta
Dim db As Database
Set db = CurrentDb
'3)
'Deshabilitamos la tecla Shift para que ningun curioso la Abra
'*********** OJO ******** OJO **************** OJO ***********
'Si no sabes habilitar despues la tecla Shift mejor no toques este comando....???????
'db.Properties!AllowBypassKey = Desactivo
'4)
'De ser asi ocultamos la cinta de Opciones si es Access 2007
DoCmd.ShowToolbar "Ribbon", acToolbarNo
'5)
'Lanzamos el Mensaje de Advertencia
MsgBox "Este Base de Datos no se puede Abrir", vbCritical, "BD Restringida"
'6)
'Y aqui nos vamos
DoCmd.Quit

Abrir_Exit:
Exit Function
Abrir_Error:
If Err = 3270 Then
db.Properties.Append db.CreateProperty("AllowBypassKey", dbBoolean, Desactivo)
Resume Next
Else
MsgBox "Error inesperado: " & Error$ & " (" & Err & ")"
Resume Abrir_Exit
End If
End Function

Un Saludo
Desde Venezuela
Jefefrson
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Seguridad BackEnd

Publicado por Vicente (29 intervenciones) el 31/05/2009 19:43:53
Hola Jefferson:
Como siempre un placer.
Tu idea me parece genial, pero tengo la necesidad de dividir la base de datos para que los usuarios me envíen el backend, compactado, comprimido y por email, tal y como funciona en tu ejemplo (versión 1) y entiendo que el código que aquí me escribes, sirve para cuando la base no está dividida.

Un saludo

Vicente
Valencia (España)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Hola Vicente

El codigo que te he enviado, funciona tanto para back-end, como para front-end y BD Sencillas... Pero por logica ha de usarse en Back-End, pues no tendria sentido usarla en Front-End o BD Sencilla...

De todas formas he creado un Ejemplo que ha de servir para lo que pides, Bloqueando las BD que quieras, Ocultando las Tablas, impedir se abra con la teclas Shift entre otras....

El Ejemplo te lo dejo en la Direccion URL....

Desde Venezuela
Jefferson
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Seguridad BackEnd

Publicado por Vicente (29 intervenciones) el 01/06/2009 13:33:04
Hola Jefferson:

Gracias, voy a revisarlo enseguida

Saludos

Vicente
Valencia(España)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Seguridad BackEnd

Publicado por Vicente (8 intervenciones) el 02/06/2009 01:48:05
Hola Jefferson y a todos los que le interese

Siempre logre colocar la clave a la Back-End
1) Dividi la base de datos y con esto cree la back-end
2) luego abri la back-end, en modo exclusivo y le he creado la contraseña
3) Abro la Front-end y elimino todas las tablas
4) luego presiono en obtener Datos Externos y eligo la Segunda Opcion "Vincular al origen de datos creando una tabla vinculada"
5) Me solicita la contraseña de la Back-end y listo

Al Abrir la front-end no pide la clave, mas sin embargo la back-end si intentas abrirla la solicita

Pero con tu ejemplo, impido que sean abieras pulsando la tecla shift y ante todo y lo mas importante oculto las tablas de las back-end asi como tambien las vinculaciones de las front-end, con esto impido sean importadas a otra BD.

Saludos

Vicente
Valencia(España)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar