jueves, enero 11, 2001

Seguridad de aplicaciones C/S

El Problema:
Típicamente en los ambientes de producción de nuestras instalaciones, todos los usuarios tienen permisos sobre todas las tablas de la base(s) de datos,
Nuestra idea original es que los usuarios tengan acceso a los datos a través de nuestras aplicaciones, pero....
cualquier usuario que conozca un poco de MSAccess podría conectarse a la BD reutilizando el propio data source de ODBC que utilizan las aplicaciones y visualizar/modificar datos. También se podría conectar mediante otras herramientas como Query Analizer o SQL*Plus para SQLServer y Oracle respectivamente en caso de tenerlas a mano .
La Solución:
Lograr mediante algún mecanismo provisto por el DBMS que los usuarios tengan los permisos deshabilitados y que la aplicación genexus en este caso se encargue de habilitarlos mediante una llamada a un Stored Procedure de la BD.
Por ejemplo en el evento Start de un WorkPanel podría hacer
Event Start
Call( SPHab , clave )
EndEvent
Que lo que hace es habilitar los permisos del usuario que está conectado a la BD.
Mientras que en la sesión no se llame a este Stored Proc. con la clave correcta, el usuario no tendrá permisos para realizar ninguna operación sobre las tablas.
Estos permisos se habilitan a nivel de sesión en la BD, por tanto una vez que el usuario se desconecte se le deshabilitaran los mismos.
En DNA está en producción una implementación de esta solución para BD Oracle.
Se está implementando (casi pronta) una versión para SQL-Server.
Casi cualquier consulta sobre el tema estamos a las órdenes,.

Alexander Wolff

No hay comentarios.: