Sei sulla pagina 1di 12

SEGURIDAD EN LAS BD ACCESS

A CONTINUACIN PRESENTAR ALGUNOS MTODOS, PARA LOS INTERESADOS EN DOTAR DE CIERTO NIVEL DE SEGURIDAD, LAS APLICACIONES REALIZADAS CON BASES DE DATOS EN EL ENTORNO DE ACCESS. -EL MTODO DE -EL MTODO DE FRANCISCO J. -EL MTODO AADIDO DE CONVERTIR A .MDE MICROSOFT GARCA AGUADO ACCESS. BHO). (EL

EL PRIMER MTODO DE MICROSOFT ACCESS.

Parte de esta informacin en texto, ha sido recopilada por: Carlos Carpio Hernndez. Le dio forma, imgenes y pas a formato html: V. Garca OBJETIVOS: Mediante las herramientas de Access, vamos a procurarnos una seguridad bastante buena en nuestras BD. 1. Disponer de una Base de Datos que, solo la persona que disponga de un archivo xxxxxxxx.MDW determinado que adems conozca un cdigo de usuario concreto y su contrasea asociada, sea capaz de entrar en ella. 2. Esta persona, que ser la propietaria de la base de datos, podr crear grupos de usuario y usuarios a los que podr dar autorizaciones de uso concretas. 3. Nadie podr llevarse la base de datos SEGURA a otro sistema Access y acceder a ella, ni como administrador, ni como ningn otro usuario, excepto que se haya llevado tambin

nuestro xxxxxxxx.MDW y sepa adems, nuestro cdigo de usuario y nuestra contrasea. Inicio Para conseguir esto, se deben tener conocimientos de los Grupos de Trabajo Access (el trabajo con los ficheros con extensin .MDW o .MDA). Access, incorpora unos ficheros (en versiones 7.0 y 97 con extensin .MDW y en versin 2.0 con extensin .MDA) en los que guarda los valores de seguridad. Se accede a estos ficheros utilizando el ejecutable WRKGADM.EXE que suele encontrarse en el directorio de Access o en el directorio\Windows\System.

Fig. 1 El nombre que suele aparecer para el ejecutable es, Administrador para trabajo en grupo. Access trae por defecto un fichero el SYSTEM.MDW(SYSTEM.MDA en Access 2), normalmente en el mismo directorio, el cual contiene dos Grupos de usuarios: Administradores y Usuarios y, un nico usuario llamado Administrador.

Fig. 2 Si se ejecuta Access, se entra en cualquier base de datos y se selecciona del men Herramientas la opcin Seguridad/Cuentas de usuario y de grupo , se puede comprobar en el cuadro de dilogo que se visualiza, que en el cuadro combinado Usuario/Nombre aparece el usuario Administrador y bajo en el cuadro de lista Grupos disponibles, los dos grupos indicados

anteriormente Administradores y Usuarios. Todo lo anterior exista, aunque no se intuyera.

Fig. 3 Cuando se inicia Access, el programa se conecta al fichero SYSTEM.MDW, del directorio Access, y por lo tanto, por defecto se entra en las bases de datos como Administrador, y por ello se puede hacer de todo con ellas.

Fig. 4 Lo que hay que hacer para asegurar una base de datos es crear un nuevo fichero para trabajo en grupo, es decir un nuevo xxxxxxxx.MDW. Para ello ejecutarWRKGADM.EXE y ah se ver que, sin saberlo, se est conectado a SYSTEM.MDW, (es el archivo que aparece en la lnea Archivo de informacin, ver Fig. 1), el cuadro de dilogo tiene un botn para crear un nuevo archivo (seguir

sus instrucciones, leyendo todo y anotando cuidadosamente todo lo que diga en l, que hay que anotar).

Fig. 5 Cuidado a la hora de grabar pues propone reemplazar SYSTEM.MDW , eso no debe hacerse, dle otro nombre.

Fig. 6 Pongamos por caso que se crea un archivo llamado PRUEBSEG.MDW (mejor ubicarlo en el mismo directorio en el que se encuentra la base de datos que se pretende asegurar). Por defecto, al crearlo, Access queda conectado a dicho grupo de seguridad. Se puede comprobar saliendo y volviendo a entrar. La lnea Archivo de informacin contiene ahora el nombre del nuevo fichero .MDW. Salir de nuevo.

Fig. 7 Ahora, se puede uno conectar (antes de ejecutar el propio Access) con WRKGADM.EXE, a uno u otro grupo de trabajo. Al entrar en Access habindose conectado previamente al nuevo grupo, no aparecen las ltimas bases de datos abiertas, sino que el lugar aparece vaco; esto es porque en el archivo MDW, adems de grupos de usuarios y usuarios, guarda tambin esta informacin. Ahora vamos a empezar a hacer, una Base de Datos Segura: * Asegurarse de estar conectado al grupo PRUEBSEG.MDW * Abrir Access y, sin abrir ninguna base de datos, elegir del men Herramientas la opcin Cuentas de usuario y de grupo. Aparece un cuadro de dilogo ms confuso de lo que a primera vista parece. Observar que est abierta la pestaa Usuarios y que en el cuadro combinado Nombre slo aparece el usuario Administrador.

Fig. 8 * Pulsar el botn Nuevo para crear un nuevo usuario; se solicitar Nombre para el nuevo usuario e Id.personal; este no es importante y se puede poner el mismo nombre en los dos sitios para no provocar ms confusin.

Fig. 9 * Pulsar Aceptar. Verificar que el Nuevo Usuario, aparece en el cuadro combinado y que, por defecto lo ha incluido en el " Grupo Usuarios", comprobar si en el cuadro de lista de abajo a la derecha aparece dicho grupo y sealar Administradores, en el cuadro de lista de la izquierda.

Fig. 10 * Pulsar el botn Agregar>>. Ahora el nuevo usuario (imaginemos que se le ha llamado PruebasAdmin), tambin pertenece al grupoAdministradores. Cualquier usuario que se cree puede pertenecer a ms de un grupo de usuarios. * Pulsar la pestaa Cambiar contrasea de conexin. Aparece un cuadro de dilogo para cambiar la contrasea del usuario actual. Observar que indica que el usuario actual es el Administrador (no PruebasAdmin). Dejar en blanco el valor Contrasea anterior y teclear el mismo valor enContrasea nueva y Confirmacin. Pulsar Aceptar. Lo que se acaba de hacer es poner una contrasea al Administrador de Access y, a partir de este momento, cuando se ejecute Access conectado al grupo de usuarios PRUEBSEG.MDW, siempre pedir usuario y contrasea (Atencin, as como la opcin usuario no distingue entre maysculas y minsculas,
la de contrasea si lo hace por lo que debes teclear los valores exactamente iguales) .

* Hacemos la prueba, salimos de Access y al intentar entrar de nuevo, Access pedir usuario y contrasea. Si queremos entrar como Administrador, deberemos teclear Administrador y la Contrasea que le hayamos puesto. Si entramos con el nuevo usuario PruebasAdmin, como al mismo no le hemos asignado contrasea hay que dejar este lugar en blanco. * Una vez dentro, se puede poner a dicho usuario una contrasea. Ni siquiera el administrador tiene capacidad para asignar ni ver

contraseas ajenas. Lo que se puede hacer es borrar las contraseas (que siempre es til para el usuario intil, al que se le olvida la contrasea). Salir de nuevo de Access. * Ejecutar WRKGADM.EXE para cambiar de grupo y conectarse al grupo de toda la vida: SYSTEM.MDW y, una vez hecho, entrar de nuevo en Access, notando que ahora todo vuelve a la normalidad; se vern las llamadas, 'antiguas' bases de datos, que no se pide contrasea, etc. Resumen de lo realizado hasta ahora: -1. Hemos creado un Grupo de trabajo nuevo al que hemos llamado PRUEBSEG.MDW. -2. En l hemos creado un usuario nuevo: PruebasAdmin, al que hemos incorporado en el grupo de Administradores, aunque tambin pertenece al grupo Usuarios. ASEGURAR UNA BASE DE DATOS 1. Conectarnos al grupo de trabajo seguro (en nuestro caso PRUEBSEG.MDW). 2. Abrir ACCESS, entraremos con nuestro usuario seguro: PruebasAdmin. 3. Crear una base de datos vaca, la llamaremos BaseDatosSegura.MDB 4. Importar a la misma todas las tablas, consultas, formularios, informes, macros y mdulos desde la base de datos que queremos hacer segura. (En Access 7, 97 y 2000, men: Archivo/Obtener datos externos/Importar...) Acabamos de crear una base de datos cuyo propietario es PruebasAdmin del grupo de trabajo PRUEBSEG.MDW. 5. Con la base de datos nueva abierta, entrar en el men Herramientas/Seguridad /Cuentas de usuario y de grupo... 6. Al usuario Administrador quitarlo del grupo Administradores. 7. Asegurmonos de que el usuario PrubasAdmin pertenece a Administradores y a Usuarios. 8. Ir al men Herramientas/Seguridad/Permisos de usuario y de grupo... 9. Elegir lista de usuarios, seleccionar el usuario PruebasAdmin, en el combo Tipo de objeto seleccionar Base de datos (cuidado est oculta

antes del valor que toma por defecto: Tabla). Poner las marcas en todos los check box. Elegir en Tipo de objeto el valor Tabla, seleccionar de la lista Nombre de objeto, todas las tablas, incluyendo el valor Tablas/consultas nuevas, poner marcas en todos los check box (lo mas fcil es quitar la marca en el check Administrar y volverselo a poner). Elegir todos y cada uno de los tipos de objeto y hacer lo mismo para cada uno de ellos. En este momento el usuario PruebasAdmin es dueo y seor de todo. 10. Elegir lista de usuarios, seleccionar el usuario Administrador, en el combo Tipo de objeto seleccionar Base de datos. Quitar las marcas a los check box: Abrir o Ejecutar, Abrir en modo exclusivo y Administrar. 11. Elegir lista de grupos, seleccionar el grupo Administradores, y hacer lo mismo del punto anterior: elegir Base de datos, quitar marcas... El punto anterior no se menciona en ninguna ayuda oficial de Access 2, ni 7, ni 97. Tampoco se menciona en los libros que he consultado. ? 12. Seleccionar ahora el grupo Usuarios, y hacer lo mismo. Nuestra Comprobmoslo. base de datos ES SEGURA. !!

1. Cerremos Access. 2. Nos conectaremos al grupo de trabajo SYSTEM.MDW. 3. Entramos en Access (por defecto entramos como Administrador). 4. Intentemos abrir nuestra base de datos segura. Nos dar un mensaje mas o menos as: No tiene los permisos necesarios para acceder al objeto, etc. 5. Intentemos crear en este SYSTEM.MDW un usuario PruebasAdmin igual al que tenemos creado en PRUEBSEG.MDW. Recordemos que para que podamos entrar con este usuario deberemos poner una contrasea al usuario Administrador de este grupo de trabajo. 6. Entremos en Access como este usuario, tampoco nos deja entrar. 7. Nos conectamos a PRUEBSEG.MDW y entramos como Administrador, intentamos abrir la base de datos segura y... tampoco. Slo podemos acceder a ella con nuestro usuario PruebasAdmin estando conectados a PRUEBSEG.MDW y solo el que conozca la contrasea de dicho usuario podr entrar en la misma. Ahora podemos empezar a crear nuevos grupos de usuarios y nuevos usuarios y empezar a otorgar permisos al uso de tablas y consultas, y formularios...

O utilizar la base de datos segura, en un entorno de Visual Basic, los usuarios no podrn acceder a ella de ninguna otra manera. (Como en mi caso). Para hacerla an mas segura la podemos codificar. Las instrucciones que desde Visual Basic, debemos incluir en el cdigo para acceder a una base de datos segura son:
Dim gDb as DataBase DBEngine.SystemDB = GetSetting(App.EXEName, DBEngine.DefaultUser = DBEngine.DefaultPassword = SetPassword("") "Datos", "GrupoMdw") "Microfusion"

Set gDb = DBEngine.OpenDatabase("C:\Directorio\BasedeDatos.mdb")

Carlos Carpio Tenerife ccarpioh@hotmail.com http://www.ambigramas.com < Casi nunca responde. MTODO DE FRANCISCO J. GARCA AGUADO (EL BHO).

Hernndez (Espaa)

Este es un mtodo externo a Access, bastante bueno en seguridad para BD's con soporte Access. El maestro Francisco J. Garca, hizo en su da un ejemplo que mucha gente viene utilizando y que por experiencia puedo decir que es de lo ms seguro. Aunque como bien dice l (el BuHo), es conveniente que cada cual por su cuenta, a partir del mencionado trabajo, tiene que experimentar y aadir o modificar su cuota parte personal, claro est, si quiere dotarle de mayor seguridad, no obstante, el mencionado ejemplo es todo un compendio de posibilidades de enmascaramiento y de capacidad de persuasin, para los 'piratas'. Y no me extiendo ms, de modo que si ests verdaderamente interesado en este sistema de seguridad, lo estudies y adaptes a tus necesidades. Ah!, si necesitas ayuda, no dudes en consultar con el autor, sers bien atendido, me consta, por eso: Deberas visitar el siguiente enlace: http://www.clikear.com/webs/accessbhuo/index.html <= Parece que no est activa. Probar esta nueva: http://accessbuho.mvps.org/index.htm EL MTODO AADIDO DE CONVERTIR A MDE.

Si deseamos proteger nuestros trabajos, adems de lo expuesto hasta el momento, podemos aprovechar la opcin de convertir nuestra BD a MDE, esto lo que hace es reducir el cdigo y proteger contra la copia sobre todo los formularios y los mdulos, de modo que reduce el 'peso' de la aplicacin. Puede que en algn caso surja alguna dificultad al intentar convertir una BD a MDE, normalmente es debido a que el cdigo no est depurado, uno de los motivos tpicos es que hayamos creado algn control (o un botn) que luego hemos decidido no utilizar y lo borramos del formulario sin ms, esto es el causante del problema, es decir el resto del cdigo del control (o botn) que ha quedado en el mdulo y como no tiene utilidad, el programa desestima dicho cdigo, una vez eliminado del mdulo, lo guardamos y queda resuelto el problema. Si adems, queremos que no se pueda ver un objeto de una base da datos en Access, deberemos renombrar ese objeto con el prefijo USys, por ejemplo si tenemos un objeto (tabla, consulta, form o informe) tblClientes lo cambiamos a UsystblClientes, con el resto de objetos hacemos lo mismo, esto lo convierte a la vista de Access como un archivo del sistema. Hay ocasiones en las que no podemos ejecutar ciertos mdulos de una BD, puede que algunas referencias las tengamos inhabilitadas y ste es el motivo de errores habituales de cdigo, bien por haber convertido la BD desde una versin anterior a la actual o por alguna otra razn. Para evitar en lo posible este tipo de errores, es conveniente revisar nuestras referencias en cada aplicacin, stas por orden son: Visual Basic For Microsoft Access 9.0 Object Microsoft DAO.6 Objetct Microsoft ActiveX Data Objects 2.1 OLE Microsoft Visual Basic for Applications Extensibility 5.3 Application Library Library Library Automation

Los dos primeros son los bsicos del sistema y son inamovibles. Respetar el orden descrito. Con esto se solventan la mayora de los problemas.

Potrebbero piacerti anche