OBJETIVOS:

1. Disponer de una Base de Datos que solo la persona que disponga de un 
archivo xxxxxxxx.MDW determinado y que conozca un código de usuario concreto 
y su contraseña 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 ningún otro usuario, excepto 
que se haya llevado también nuestro xxxxxxxx.MDW y sepa, además, nuestro 
código de usuario y nuestra contraseña.

Para conseguir esto, se deben tener conocimientos de los Grupos de Trabajo 
Access (el trabajo con los ficheros con extensión .MDW o .MDA).

Access incorpora unos ficheros (en versiones 7.0 y 97 con extensión .MDW y 
en versión 2.0 con extensión .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. El nombre que suele aparecer para el ejecutable es 
Administrador para trabajo en grupo. Access trae por defecto un fichero 
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.

Si se ejecuta Access, se entra en cualquier base de datos y se selecciona 
del menú Herramientas la opción Seguridad/Cuentas de usuario y de grupo, se 
puede comprobar en el cuadro de diálogo que se visualiza, que en el cuadro 
combinado Usuario/Nombre aparece el usuario Administrador y en el cuadro de 
lista Grupos disponibles, los dos grupos indicados anteriormente. Todo lo 
anterior existía, aunque no se intuyera.

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.

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 
ejecutar WRKGADM.EXE y ahí se verá que, sin saberlo, se está conectado a 
SYSTEM.MDW (es el archivo que aparece en la línea Archivo de información), 
el cuadro de diálogo tiene un botón para crear un nuevo archivo (seguir sus 
instrucciones, leyendo todo y anotando cuidadosamente todo lo que diga que 
hay que anotar). Cuidado a la hora de grabar pues propone reemplazar 
SYSTEM.MDW y eso no debe hacerse.

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 línea Archivo de información contiene ahora el nombre del nuevo fichero 
.MDW. Salir de nuevo.

Ahora se puede uno conectar (antes de ejecutar el propio Access) a uno u 
otro grupo de trabajo.

Al entrar en Access habiéndose conectado previamente al nuevo grupo, no 
aparecen las últimas bases de datos abiertas, sino que el lugar aparece 
vacío; esto es porque en el archivo MDW, además de grupos de usuarios y 
usuarios, guarda también esta información.

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 opción Cuentas de usuario y de grupo. Aparece un cuadro de 
diálogo más confuso de lo que a primera vista parece. Observar que está 
abierta la pestaña Usuarios y que en el cuadro combinado Nombre sólo aparece 
el usuario Administrador.

* Pulsar el botón Nuevo para crear un nuevo usuario; se solicitará Nombre 
para el mismo e Id.personal; el segundo no es importante y se puede poner el 
mismo nombre en los dos sitios para no provocar más confusión.

* Pulsar Aceptar. Verificar que el nuevo usuario aparece en el cuadro 
combinado y que, por defecto lo ha incluido en el Grupo "Usuarios" y 
comprobar si en el cuadro de lista de abajo a la derecha aparece dicho grupo 
y señalar en el cuadro de lista de la izquierda el valor Administradores.

* Pulsar el botón Agregar>>. Ahora el nuevo usuario (imaginemos que se le ha 
llamado PruebasAdmin), también pertenece al grupo Administradores. Cualquier 
usuario que se cree puede pertenecer a más de un grupo de usuarios.

* Pulsar la pestaña Cambiar contraseña de conexión. Aparece un cuadro de 
diálogo para cambiar la contraseña del usuario actual. Observar que indica 
que el usuario actual es el Administrador (no PruebasAdmin). Dejar en blanco 
el valor Contraseña anterior y teclear el mismo valor en Contraseña nueva y 
Confirmación. Pulsar Aceptar. Lo que se acaba de hacer es poner una 
contraseña 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 contraseña. (Atención así como el usuario no distingue entre 
mayúsculas y minúsculas, la contraseña si lo hace por lo que hay teclear los 
valores exactamente igual)

* Hacemos la prueba, salimos de Access y al intentar entrar de nuevo, Access 
pedirá usuario y contraseña. Si queremos entrar como Administrador, 
deberemos teclear Administrador y la Contraseña que le hayamos puesto. Si 
entramos con el nuevo usuario PruebasAdmin, como al mismo no le hemos 
asignado contraseña hay que dejar este lugar en blanco.

* Una vez dentro, se puede poner a dicho usuario una contraseña. Ni siquiera 
el administrador tiene capacidad para asignar ni ver contraseñas ajenas. Lo 
que se puede hacer es borrar las contraseñas (que siempre es útil para el 
usuario inútil, al que se le olvida la contraseña). 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 verán las llamadas antiguas a las 
bases de datos, no se pide contraseña, 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 también 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 vacía, la llamaremos BaseDatosSegura.MDB
4. Importar a la misma todas las tablas, consultas, formularios, informes, 
macros y módulos desde la base de datos que queremos hacer segura.    (En 
Access 7 y 97, 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. Asegurémonos 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 fácil 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 dueño y señor 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 base de datos ES SEGURA. !! Comprobémoslo.

1. Cerremos Access.
2. Nos conectectamos 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 contraseña al usuario Administrador de este 
grupo de trabajo.
6. Entremos en Access con 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.

   Sólo podemos acceder a ella con nuestro usuario PruebasAdmin estando 
conectados a PRUEBSEG.MDW y solo el que conozca la contraseña 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 podrán acceder a ella de ninguna otra manera. (Como en mi caso).

Para hacerla aún mas segura la podemos codificar.

Las instrucciones que desde Visual Basic, debemos incluir en el código para 
acceder a una base de datos segura son:

    Dim gDb as DataBase

    DBEngine.SystemDB = GetSetting(App.EXEName, "Datos", "GrupoMdw")
    DBEngine.DefaultUser = "Microfusion"
    DBEngine.DefaultPassword = SetPassword("“šš‘”–")

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

Saludos, Carlos.

Carlos Carpio Hernández
Tenerife (España)
ccarpioh@hotmail.com
http://www.ambigramas.com


    Source: geocities.com/es/ensolva/Descargas/Documentos

               ( geocities.com/es/ensolva/Descargas)                   ( geocities.com/es/ensolva)                   ( geocities.com/es)