Programaci�n sobre la seguridad de Access

Les ofrezco una visi�n global del mecanismo de seguridad de Access y la forma de administrar la misma con c�digo VB. Aclaro que VB no proporciona ning�n m�todo para crear una BD del sistema de seguridad, pero si cuenta con la capacidad de administrar la seguridad que esta provee.


Seguridad de Access

Las versiones recientes de Microsoft Access ofrecen dos m�todos para proteger una base de datos: contrase�a para abrir un archivo de base de datos o mediante seguridad a nivel de usuario o de cuentas. Adem�s de estos m�todos, puede eliminar c�digo modificable de VB de la base de datos y as� proteger el dise�o de formularios, informes y m�dulos de la base de datos de posibles modificaciones guard�ndolo como un archivo MDE. Estos �ltimos t�picos no ser�n tratados en este documento.


Contrase�a de Archivo MDB

Brevemente me refiero a esta opci�n para centrarnos en el Sistema de Cuentas que es el prop�sito de este articulo. El m�todo Contrase�a de Archivo MDB es simple y consiste en habilitar una contrase�a para abrir un archivo MDB especifico. El m�todo es el adecuado para una base de datos que est� compartida entre un peque�o grupo de usuarios o sobre un s�lo equipo. No es aplicable si quiere replicar la BD o pretende implantar un sistema de seguridad en red. Si desea abrir una BD con contrase�a de archivo siga este c�digo:


    Dim wrkJet As Workspace
    Dim dbsM97 As Database
    Set wrkJet = CreateWorkspace("", "admin", "", dbUseJet)
    Set dbsM97 = wrkJet.OpenDatabase("miBD.mdb", True, False, ";PWD=miContrase�a")

Tenga en cuenta este c�digo porque en ninguna parte de la ayuda en l�nea lo encuentra tan claro.

En caso de usar el DataControl, hacerlo de esta forma, (dato de Jose Ramon):

Data1.Connect = ";pwd=MiClave"

Para compactar una BD con contrase�a pueden seguir este ejemplo particular (dato de Jose Ramon Laperal):

DBEngine.CompactDatabase "MiBase", "MiBaseCompacta", dbLangGeneral, _
			dbVersion30, ";pwd=MiClave"

El exito de la intrucci�n depende de los par�metros suministrados.


Sistema de Cuentas

Los usuarios son obligados a identificarse y escribir una contrase�a cuando inician Microsoft Access o una Aplicaci�n Access. La seguridad se basa en permisos, los cuales son atributos para un grupo o usuario. Por ejemplo, a un grupo bautizado Usuarios_Alpha se les permita visualizar, introducir o modificar datos en una tabla Clientes, pero no se les permita cambiar el dise�o de esa tabla, ni accesar otras tablas. As� un usuario que pertenezca a este grupo s�lo tendr� estos atributos y, en particular, los que le quiera dar un Administrador.


Las tres razones principales para utilizar la seguridad a nivel de usuario son las siguientes:

Proteger la propiedad intelectual del c�digo.
Impedir que los usuarios cambien o inutilicen inadvertidamente una aplicaci�n cambiando c�digo de objetos de los que depende la aplicaci�n.
Proteger los datos sensibles de la base de datos.


Si quieren entender plenamente el sistema de seguridad, es necesario estudiar los conceptos del mismo, como son varios, y la teor�a es amplia, les tengo que sugerir el capitulo Protecci�n de la aplicaci�n, en el manual Creaci�n de aplicaciones que viene con Microsoft Access (2.0/95/97). Pero para los que est�n de af�n, le sugiero esta receta para crear un sistema de seguridad:


1. Crear a o unirse a grupo de trabajo

Textualmente, Un grupo de trabajo de Microsoft Access es un grupo de usuarios en un entorno multiusuario que comparten datos. Un Grupo de Trabajo se sirve de un archivo donde se almacenan las cuentas. Puede usar una predeterminado, uno existente o crear uno nuevo. Para esto emplea el Administrador para grupos de trabajo., busque el archivo Wrkgadm.exe (Access 2.0 o superior).


2. Cree una Cuenta de Propietario y Una de Administrador.

Con el Grupo de Trabajo activo, inicie MS Access, abra una BD, men� Usuarios, Usuario, del cuadro de dialogo escoja Nuevo, del cuadro de dialogo escriba el Nombre y un ID personal (esta combinaci�n identificara al usuario de aqu� en adelante) y Aceptar. Para crear la cuenta de propietario siga las mismas instrucciones. El Administrador administrara el Grupo de Trabajo, el propietario como su nombre lo indica, ser� el due�o de la BD y sus objetos.


3. Activar el procedimiento de inicio de sesi�n

Una BD ser� protegida cuando el administrador tenga contrase�a y tenga Titularidad. Con el Grupo de Trabajo activo, inicie MS Access, abra una BD, men� Cambiar Contrase�a, Cambiar Contrase�a. Siga el cuadro de dialogo. La pr�xima vez que inicie Access, el cuadro de dialogo Conexi�n solicitara el nombre de un usuario y su contrase�a.


4. Cambie la Titularidad

Inicie la sesi�n con la cuenta del nuevo Administrador creado anteriormente, Cree una nueva BD: men� Archivo, Complementos, Importar BD. Seleccione el archivo MDB cuya titularidad desea cambiar, y de Aceptar. Tambi�n puede cambiar la titularidad de un objeto individual, desde los di�logos Cambiar Propietario, pero no desviemos la atenci�n. Valga aclara que las bases de datos creadas desde una sesi�n de grupo, no necesitan cambiar su titularidad porque la traen de nacimiento.


5. Cree las cuentas de los Usuarios.

Cree grupos y usuarios de la siguiente manera. Abra la BD, men� seguridad, Grupos o Usuarios, siga los di�logos. Los PID son importantes para el administrador, no para los usuarios, anotelos. Despu�s de creados los usuarios y grupos, puede hacer que un usuario, digamos John, pertenezca a un grupo y as� limite sus permisos. Para generalizar, recuerde, la administraci�n de las cuentas se lleva a cabo desde el men� Seguridad, creo que no necesitas memorizar m�s recetas.


6. Asignar Autorizaciones

Una vez creadas las cuentas, puede asignar autorizaciones a esas cuentas. Men� seguridad, autorizaciones. Importante: su BD no estar� segura hasta no eliminar las autorizaciones del usuario Administrador y del grupo Usuarios (cuentas predeterminadas de Access). En realidad la administraci�n de autorizaciones es el proceso donde invertir� la mayor parte del tiempo (la l�gica de autorizaciones se aprende ensayando). Tenga presente en autorizaciones no solo a las tablas, tambi�n a las consultas, m�dulos y formularios.


7. Asignar Contrase�as

Al fin llegamos al paso f�cil. As�gnele una contrase�a a cada uno de sus usuarios. Es m�s r�pido con c�digo VB. Con Access, tiene que iniciar Access con cada cuenta, ir al men� Seguridad, Cambiar Contrase�a y asignar el password. Si un usuario no tiene contrase�a, cualquiera puede entrar con el nombre de ese usuario, en ese momento la contrase�a es una cadena vac�a. Un usuario puede cambiar su contrase�a en el momento que lo desee.

Otro nivel es la codificaci�n de la BD, pero aun no he llegado a este extremo. Es �til para protegerse de hackers � o, no ?. No es dif�cil, pero s� riesgoso (opini�n personal). Desde el men� Archivo, seleccione Codificar/Decodificar BD.

Si llego hasta aqu�, y no esta a�n frustrado, me alegra. Vea lo que le espera para implantar una aplicaci�n que acceda una BD protegida.


C�digo Visual Basic

VB proporciona una interfaz poderosa de c�digo para administrar un sistema de cuentas. Pero antes que se anime, lo m�s cr�tico es decirle a VB cual BD del sistema usar. Tengan presente esta cita:

Cuando se instala el controlador de bases de datos motor Microsoft Jet, el programa de instalaci�n escribe un juego de valores predeterminados en el Registro de Windows en las subclaves Engines y ISAM, para Jet 3.0. Para Jet 2.5, los valores de inicializaci�n se encuentran en el archivo VB.INI o en el archivo <NOMBREAPL>.INI, dependiendo del valor de la propiedad IniPath del objeto DBEngine.

Es decir, muy posiblemente tendr� que v�rselas con el espantoso Regedit.Exe o con los INI si usa aplicaciones de 16 bits. Al respecto, le recomiendo buscar en la ayuda en l�nea estos temas:

Ayuda, Tab [Index], busque inicio del motor de base de datos, y seleccione el titulo Cambio de la configuraci�n ISAM del motor Microsoft Jet.


Ejemplos Visual Basic

Puede lanzarse a programar con VB. Los siguientes bloques de c�digo los obtuve de la ayuda en l�nea, los refine y organice. Son para DAO 3.5, para otras versiones el c�digos es similar, solo que m�s sencillos. Ha sido fuente de informaci�n m�a. El m�dulo es muy completo y did�ctico.


Por favor Guille, coloca aqu� un vinculo para bajar el archivo que contiene este documento y el modulo de ejemplos:
Aqu� est� el link solicitado (Harvey_MSJet.zip 7.7 KB)



Atentamente,
Harvey Triana, Petrosoft Colombia, 1997
[email protected]