Ver Mensaje Individual
  #3  
Antiguo 16-05-2003
ALMERA ALMERA is offline
Miembro
 
Registrado: may 2003
Posts: 42
Reputación: 0
ALMERA Va por buen camino
Hola amigo, yo lo que hago es que me creo una tabla de usuarios con estos campos codigo,nombre,clave y rol, tambien suelo poner nuevos campos para permisos especiales de partes especiales del programa, tambien me creo una tabla de roles con los campos rol, titulo,nivel_de_permiso, obviamente enlazo estas dos tablas através del campo rol, seguidamente uno el campo tag en los items del menu donde identifica el permiso, entonces lo que hace la aplicación al empezar es pedir el usuario y password, y al aceptar compruebo su contraseña , etc y guardo en una variable global el nivel de permiso y otros datos, para permisos especiales, ahora recorro todos los elementos del menu comparando el nivel de permiso que guardo en la variable global con el tag de cada elemento, si el tag es mayor que el nivel de permiso pues desactivo y pongo invisible este elemento.

En conclusion, estoy usando de usuario siempre al SYSDBA con contraseña distinta a masterkey obviamente, es decir en la base de datos siempre es el mismo usuario, el control de usuario lo hago en la aplicación y no en la base de datos, es una opción, me parece genial llevar el control de usuario en la base de datos, pero se tarda muchisimo más en controlar esto y administrar todos los permisos de cada usuario sobre cada objeto de la base de datos, etc, eso sis los permisos sobre los roles y los usuarios se le asignan roles, pero me resulta igual de coñazo, ya que én la aplicación vas ha tener que controlar el usuario igualmente ya que según quien entre al usar partes de la aplicación que usen objetos de la base de datos que tenga acotado, empezará a petardearse la aplicación dando cada dos por tres errores, por lo tanto a mi modo de ver el control de usuario en la base de datos es triple trabajo.

Espero que te haya servido de ayuda.

Resumen: me parece mas formal llevar el control en la propia base de datos, pero tiene el coste de que tardarás el triple en programar todo esto, teniendo el mismo resultado.

A veces hay que valorar estas cosas, que es lo que más merece la pena.
Responder Con Cita