Seguridad en Access 2000

Hola, como estas
Mira yo soy un Técnico reparador de PC, el cual me he introducido en este campo de operador y he creado unas BD con buenos resultados hasta ahora, pero tengo un problemón y te detallo el problema:
Tengo un a base de datos sencilla con cuatro campos para unos usuarios bien inexpertos, en ella tengo que permitir el ingreso a dos tipos de personas una la cual podrá manejar toda la base de datos o sea ingresar e eliminar registros y la otra la cual solo podrá ingresar registros.
Te cuento que he probado de todo llevo más de 100 Hs. Tratando de hacer que esta cosa funciones siempre he utilizado los menús de access y no puedo hacer que para cada persona me permita entrar a unos formularios y a otros no, es tan sencillo como eso y o lo he podido lograr por más que lo intento, ¿este tema ya casi no me deja dormir me tiene como loco ya es un tema personal con el maldito Access que se que es una herramienta muy buena y sencilla de usar pero no se que pasa y me ha superado totalmente tendré que seguir solo con el destornillador y dejar esto para otro?.
Desde ya muchas gracias.
Si quieres escriveme a [email protected]
te agradesco muchisimo
Coordiales saludos
José Luis

3 respuestas

Respuesta
1
No te desanimes, no es tan difícil. La seguridad de Access no es una maravilla tecnológica, puedes darle seguridad a la base mediante la opción de ayuda (wizard) que te va guiando con las distintas opciones, te conviene utilizar seguridad por grupos, vienen dos grupos pre creados Admin y usuarios, pero puedes crear nuevos y otorgarles distintos derechos sobre tablas consultas etc. La seguridad, niveles, usuarios y contraseñas queda almacenada en un archivo de extensión mdw. Estos archivos (system. Mdw, secure. Mdw) se crean cuando se instala Access y pueden ser cambiados. Si aseguras una base, el archivo de seguridad debe estar en todas las máquinas donde ejecutes la aplicación, o debes abrir la base desde un acceso directo utilizando /S="T:\..\SYSTEM.MDW" pero esto con usuarios avanzados puede ser complicado. En síntesis, debes dar seguridad a la base, y copiar el archivo (puede configurarse una ruta en la registry) desde donde tomará el archivo de seguridad, este archivo tiene un Identificador (ID), para que alguien pueda violar la seguridad de tu base, debería crear un archivo de seguridad con el mismo ID... espero ayudarte, el tema es complicado pero estoy abierto a tus preguntas
Hola, me alegra que te hayas comunicado conmigo por que me encontraba desesperado.-
Mira ya he probado mucho con referencia a Usuarios y Grupos sin tener resultados.
Mira he creado grupos nuevos y conseguido que al ingresar me pida el nombre y la contraseña pero no me es posible a todo esto administrar a quien dejo ejecutar que formulario y todo esto no por que no hubiera intentado mediante permisos de Usuario grupos sino por que hay opciones que están deshabilitadas y no me asume las acciones que le marco para cada uno.-
Muchas gracias y disculpa la joda.
Saludos cordiales
José Luis
Yo no he tenido esos problemas por lo que ya no sé qué decirte. De todas formas considero la seguridad de Access como pésima y complicada.
Respuesta
1
Mra, primero te voy a comentar un par de soluciones por encima y si sigues teniendo problemas me lo dices y nos metemos más a fondo con código y eso.
1. En access, en el menu herramientas y seguridad puedes crear tipos de usuarios. Después, en asistente para seguridad por usuarios, puedes personalizar para cada usuario a que formularios, consultas... puede acceder. Yo no uso habitualmente esta forma.
2. La otra es mediante código. Puedes crear otra tabla en tu base de datos con los nombres de usuarios y contraseñas para cada uno de ellos, de forma que al iniciar el programa tengan que introducirlo. La forma es cosa tuya. Después tienes dos caminos. Uno, antes de abrir un formulario, haces un pequeño bucle if y según el usuario le permites entrar o no, o que entre a uno diferente. Pero mejor que este camino es que, al abrir el formulario, controles quien es y actives o desactives las propiedades 'allow_addition' y de ese tipo, de forma que te permitirá bloquear meter nuevos registros y eso.
Pero bueno, si te resulta complicado, ya que no se cuales son tus conocimientos programando, siempre puedes crear un formulario en el que solo nse permite ver los registros y otro en que se puede hacere de todo.
Espero que te haya quedado claro, en cualquier caso, puedes volver a preguntarme, ¿de acuerdo?
Un saludo, y no olvides finalizar. Hasta otra
Dime, no se si no es mucha molestia puedes enseñarme a hacer este procedimiento por medio de códigos, por que te cuento que con usuarios y grupos lo he probado todo y no lo puedo hacer andar.
Pero eso si te cuento que no se nada de programación en códigos, como te comente antes, soy técnico pero muy revoltoso y me gusta aprender aunque no en estos términos donde el tiempo apremia tanto.-
Bueno espero que te comuniques conmigo y de esa forma nos ponemos a trabajar-
Te agradezco mucho toda la información que para mi es invalorable ya que acá no tengo a quien preguntarle sobre cosas como estas.
PD: Soy Uruguayo
Necesito que me cuentes un poquito más de tu base de datos, pero mientras, para que vayas moviéndote, tienes que crear otra tabla, que puedes llamar seguridad, con 3 campos: nombre_usuario, clave, acceso
Nombre_usuario es evidente lo que es, clave es para facilitar una clave, y tipo de usuario es que, depende de lo que sea, podrá acceder a un sitio u a otro.
Ademas vamos a hacer lo más fácil, que es crear dos formularios. Entonces, en el botón desde el que se accede al formulario, le das con el botón derecho y a ver código.
ahí modificas el codigo. Lo que hay que hacer es, si suponemos que tenemos dos tipos de acceso, utilizar un bucle, tal que asi
if (acceso=tipo1) then
abrir formulaio1
else
abrir formulario2
end if
Cuando me digas más te podré decir algo más avanzado. Mientras, no estaría de más que finalizaras la pregunta y me hicieras una nueva
Respuesta
1
Me supongo que si quieres hacer que el programa haga cosas distintas según el usuario que lo maneje, lo primero es que sepa qué usuario tiene delante... En principio puedes hacer lo típico, de pedir un usuario&pwd al iniciar, o bien averiguar el nombre del PC en la red y utilizarlo para saber si se tiene que poder acceder o no.
En el primer caso, utiliza un formulario de nombre login con esos dos campos y un botón ok que, además de comprobar que la pwd es correcta, haga me.visible=false. Ésto lo oculta, en lugar de cerrarlo, de forma que a partir de ese momento puedes comprobar el valor del campo de usuario.
También le deberías poner la propiedad Modal (propiedades/otras) a sí para que no se pueda dejar atrás, y ponerlo como formulario de inicio (menu herramientas/inicio/mostrar..)
En tus formularios, en el evento 'al abrir', tienes que comprobar si el usuario es de los que pueden o no abrirlo. Lo puedes hacer algo así como
Private Sub Form_Open(Cancel As Integer)
dim u$
u=nz(forms("login").form.usr)
If u<>"PEPEPUEDE" and u<>"RAMONTAMBIEN" Then
Cancel = -1
endif
End Sub
Es decir, tomo el valor del campo que contiene el nombre del usuario (formulario login, campo usr), y si no es de los citados, activo el parámetro Cancel, que le dice a Access que cancele la apertura.
Evidentemente, esto es muy básico, pero creo que te quedará clara la idea. A partir de aquí, se puede complicar todo lo que quieras.
Animo con el Access, que se pueden hacer muchas virguerías...
Hola, en primera instancia Muchas gracias por la ayuda aunque no tengo ni la más pálida idea de como emplear todo el material que me diste, dime podrías ser un poco más puntual para que yo que no tengo muchos (casi ningún) conocimiento y lo que quiero es aprender por que es seguro que me hará falta en un futuro cercano.-
Te agradezco muchísimo y si no tienes tiempo o algo me lo comunicas y de esa forma finalizo la pregunta y te doy el puntaje, Muchas gracias
Un pequeño paso a paso, que normalmente viendo como se hace es como mejor se entiende...
Ves a la parte de formularios y crea uno nuevo en vista diseño. Ponle dos cuadros de texto. Activa uno de ellos, selecciona en el menu ver la opción Propiedades para ver las que tiene. En la pestaña Opciones ves que la primera es el nombre del control, te habrá puesto uno por defecto, probablemente 'Texto0'. Cámbiaselo por 'usr'. Haz lo mismo con el otro cuadro para ponerle de nombre 'pwd'. En la pestaña 'Datos', pones el cursor en el campo 'Máscara de entrada' y te aparecen a la derecha unos puntitos suspensivos. Pínchalos y te lleva a un asistente. Selecciona 'Contraseña' y pica Finalizar. Ésto hará que la contraseña no se vea en pantalla.
Añade un botón al formulario. Si te sale un asistente, lo cancelas. Pulsa F2 para cambiarle el rótulo al botón por algo así como 'Validar'. Sácale las propiedades y busca la pestaña 'Eventos' para situarte en el campo del evento 'Al hacer click'. Te salen los puntitos, les das, y elijes 'Generar código'. Y esto te llevará al visual basic, para programar.
Asumo por lo que me dices que desconoces la programación en VBA, lo anterior hasta aquí es bastante simple y no necesita más que unas cuantas horas para hacerse con el diseño de formularios, las propiedades de controles y demás. En cuanto a la programación, ya es otro tema más complicado, deberías buscar algún curso por Internet, pero tampoco te puedo recomendar ninguno porque no los conozco. En fin...
Te habrá abierto el visual basic. En el sitio donde te deja el cursor le tecleas algo así...
dim b as boolean
if me.usr="PEPE" and me.pwd="CASA" then b=true
if me.usr="JUAN" and me.pwd="NAUJ" then b=true
if b then
me.visible=false
else
msgbox "Acceso denegado"
Endif
Esto mete en una variable b el resultado de comprobar si el usuario y la contraseña son válidas. Es una forma muy cutre de comprobarlo, deberían estar en una tabla codificada, pero para el ejemplo servirá.
Fíjate que si es correcto, lo que se hace es ocultar el formulario (me.visible=false) en vez de cerrarlo, esto es así para que posteriormente se pueda comprobar el usuario, y es a lo que hacía referencia en la primera respuesta.
Pruébalo primero y luego, si va bien, haces el resto de cosas que te ponía en esa primera respecto aque sea modal y tal.
En cuanto al resto de formularios, la cosa va así. Lo abres en vista diseño, sacas las propiedades (fíjate que para sacar las propiedades de un formulario tienes que tenerlo seleccionado, esto se hace con el cuadradito que hay debajo del cuadro de control del formulario, el que tiene las opciones de minimizar, etc en la parte superior izquierda de la ventana) y buscas el 'Evento' de nombre 'Al abrir' ¿lo vas pillando? Le das a los puntitos para generar código y aquí es donde debes poner lo del primer mensaje, comprobando qué usuario está abriendo el formulario y admitiéndolo a no. Por cierto, si no has hecho el 'login' antes te dará un error, pues ese otro formulario debe estar siempre abierto aunque no sea visible.
Pffff me duelen los dedos. Mira a ver qué haces con todo esto, si hay problemas avisa.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas