Seguridad para base de datos

He diseñado una base de datos en power builder lo que quiero es que al momento de hacer correr la BD me aparezca una opción en donde me pida la contraseña y el usuario esto debe de estar limitado para tres usuarios claro uno de las cuales debe tener privilegios de administrador, en cuanto a los otros dos deberán tener ciertas limitaciones como por ejemplo es decir solo podrán ingresar los datos más no borrarlos, etc no se si podrías ayudarme indicándome los pasos necesarios para solucionar mi problema y si es posible el código.
1

1 Respuesta

107.900 pts. clipper todas sus versiones (manejo total) power...
Existen 2 formas de poder limitar a los usuarios de un sistema:
La primera y la más simple, es dejar que la propia base de datos impida o permita, el manejo de información, a los usuarios que ingresan al sistema, claro esto dependiendo del rol que juegan en dicha base de datos, (claro, siempre y cuando la base de datos te lo permita, me refiero a la creación de usuarios, grupos, administradores, etc), esto a lo mejor no es necesariamente limpio en presentación, visualmente hablando, puesto que todos los usuarios pueden ver y seleccionar todas las opciones, aunque no todos pueden actuar sobre toda la data.
La otra cara:
Esta es la más difícil pero al final la más satisfactoria, aunque tienes que tener un poco de cuidado con ella, esta opción es la que el programador o desarrollador como tal deberá construir (personalmente esta es la que más me gusta), puesto que deberá conformar un sistema de seguridad para la integridad de los datos y de la propia aplicación, o aplicaciones, este sistema de seguridad deberá tener la posibilidad de aperturar usuarios, controlar claves, manipular permisos, revocar usuarios, etc.
Una idea:
En principio puedes utilizar un único usuario el cual tenga permisos de todo en la base de datos, este usuario es totalmente invisible al usuario de la aplicación, por medio de este, harás la conexión a la base de datos, claro cuidado con revelar la identidad de dicho usuario, la conexión será efectuada en el momento de la apertura del programa, incluso antes de presentar la pantalla que solicita el nombre del usuario o login y su clave,
Una vez que el usuario ingresa los datos, verificas su rol en una tabla, la cual permitirá el ingreso del usuario, adicionalmente otras tablas que permitirán la visualización, de opciones en el menu, opciones de mantenimientos, etc.
Este sistema de seguridad deberá permitir crear grupos de trabajo, y a estos adicional usuarios. De tal manera que sea más simple crear un grupo, indicar sus privilegios y adicional al grupo todos los usuarios que queramos, siendo más simple que colocar dichos privilegios a cada usuario.
(Pero eso ya es según criterio)
La estructura
Opcionalmente podría ser más o menos así
Tabla de usuarios:
Código del usuario
Nombre del usuario
Login de ingreso
Clave de acceso
Status del registro
Tabla de grupos:
Código del grupo
Descripción del grupo
Status del grupo
Tabla de menu y relación grupos
Codigo de menu
Descripcion del menu
Status del menu
Codigo del grupo
Tabla de detalle del menu
Codigo del menu
Descripcion de opcion
Opción
Tipo de opción
Puede altas
Puede bajas
Puede cambios
Status de opcion
Tabla de relación grupo-usuario
Código de grupo
Código de usuario
Status del grupo
Como ya habrás deducido a esta altura, estas tablas manejan directamente el acceso de un usuario, sin que este sea dado de alta en la base de datos como tal, y ademas se integre un rol o permisos de acceso, actualización, visualización, etc.
En las tablas relacionadas con menu, integraras las opciones de todo el menu de tu aplicación, teniendo en cuenta que estas puedan ser encendidas o apagadas, adicionalmente la relacionas con un grupo de trabajo, el cual asu vez esta relacionando un grupo de usuarios, los cuales poseerán todos los atributos que designes de la tabla de detalle del menu u opciones de menu,
Estas opciones serán las que describirás en el menu general de la aplicación (por supuesto una aplicación MDI), en la tabla de opciones encontraras un campo OPCIÓN, la cual personalmente coloco el nombre del objeto del menu, así no importa si cambia la descripción de la opción, no cambia los atributos del menu.
Todo esto en conjunto, haciendo invisible el usuario primario o único, permite controlar la aplicación bastante bastante bien, ademas que solo utilizas un único usuario en la base de datos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas