Cómo crear un nuevo archivo de información de grupos de trabajo
Por Enrique Martínez Montejo
Última revisión: 26/10/2003
 

Si nuestra aplicación de base de datos se ejecuta en un entorno multiusuario, es recomendable disponer de un archivo de información de grupos de trabajo, a fin de guardar en él la información, permisos y seguridad de los distintos grupos y usuarios incluidos en el mismo. Generalmente, el archivo de información de grupos de trabajo se llama System.mdw, y si se utiliza, hay que indicar la ruta del mismo en la cadena de conexión antes de establecer un enlace con el origen de datos.

Al crear un nuevo archivo de información, automáticamente se crean dos grupos de trabajo, Admins y Users, y un usuario adscrito a ambos grupos, el usuario admin, que será el administrador por defecto del archivo de información.

El siguiente ejemplo creará un archivo de información de grupos de trabajo mediante el método Create del objeto Catalog de la biblioteca ActiveX Data Objects para DDL y Seguridad (ADOX). Para ello indicaremos en la cadena de conexión nuestra intención de crear dicho archivo de información:

Dim cat As ADOX.Catalog

' Creamos un objeto Catalog
Set cat = New ADOX.Catalog

' Generamos un nuevo archivo de información
cat.Create  "Provider = Microsoft.Jet.OLEDB.4.0;" & _
            "Data Source = " & App.Path & "\System.mdw;" & _
            "Jet OLEDB:Create System Database = True"

El parámetro Data Source puede contener la ruta donde se creará el archivo de información, el cual puede tener el nombre y la extensión que deseemos. Si no se especifica la ruta, el archivo se creará en la carpeta que actualmente se encuentre activa, que para el sistema operativo Windows XP Pro, por ejemplo, se tratará de la carpeta Documents and Settings del usuario que haya iniciado sesión. Si en la carpeta especificada existe ya un archivo de información con el mismo nombre, se producirá un error interceptable.

Hay que tener especial cuidado en no separar con un espacio en blanco las palabras OLEDB: y Database, porque de hacerlo nos encontraremos con el error No se pudo encontrar el archivo ISAM instalable. Por tanto, la escritura correcta es OLEDB:Database, sin espacios en blanco, lo que también es válido para cualquier otro nombre de propiedad que comience por Jet OLEDB:.

Puede ocurrir que a la hora de crear un nuevo archivo de información obtengamos el error No es un nombre de cuenta o contraseña válido. Esto se debe a los valores de inicialización del motor Microsoft Jet registrados en el sistema, en concreto al valor SystemDB, que para la versión 4.0 del motor Jet, se encontrará en la siguiente clave del Registro de Windows:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines

Por defecto, dicho valor contiene la cadena System.mdb, que no corresponde con ningún archivo de información válido, pero si por cualquier motivo el valor ha sido modificado y contiene la ruta de un archivo de información válido, donde el usuario por defecto Admin tiene establecida una contraseña, cuando intentemos establecer una conexión con cualquier base de datos deberemos de especificar en la cadena de conexión la ruta del archivo de información de grupos de trabajo, así como el identificador de usuario y su contraseña, en el caso de tener asignada alguna. Si no deseamos especificar ninguna base de datos del sistema, no nos quedará más remedio que editar manualmente la clave del Registro de Windows y modificar el valor existente en la entrada SystemDB, de tal manera que ésta no contenga la ruta de un archivo de información de grupos de trabajo válido.

Indicar por último que lo comentado anteriormente es también válido para cualquier otra operación que deseemos efectuar con las bibliotecas de datos disponibles para acceder a cualquier base de datos Microsoft Access, aunque sea el establecimiento de una simple conexión con el origen de datos mediante las bibliotecas de ADO o DAO.

 

Otros enlaces de interés:

Cómo crear un nuevo grupo de trabajo

Cómo eliminar un grupo de trabajo

Cómo crear un nuevo usuario

Cómo eliminar un usuario de un grupo de trabajo

Colección de ejemplos de la biblioteca de ADOX


Enrique Martínez Montejo - 2003

NOTA: La información contenida en este artículo, así como el código fuente incluido en el mismo, se proporciona COMO ESTÁ, sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo explicado, recomendado o sugerido en el presente artículo.

NOTE: The information contained in this article and source code included therein, is provided AS IS without warranty of any kind, and confers no rights. You assume any risk to implement, use or run it explained, recommended or suggested in this article.