locked
Otorgar permisos a usuarios de una base de datos RRS feed

  • Pregunta

  • Hola a todos... Bueno hice una pregunta de orientacion en la mañana referente a otorgar permisos en una aplicaciones a cierto modulos a distintos usuarios... Y me orientaron ya que eso era lo que queria pero resulta que en la practica me consegui con cosas que no se como resolver por lo que me vi obligado a preguntar cosas mas concretas...

    Necesito otorgar ciertos permisos a usuarios pero el problema me encuentro que estoy usuarios pueden tener N numeros de permisos... Por ejemplo hay 4 modulos de un programa "programadores, administracion, control de calidad, recursos humanos" y yo quiero que ciertos usuarios tengan o todos los permisos de acceso a cualquier modulo o como tambien que nada mas pueda entrar a uno solo....

    Lo que no se es lo principal ¿Como realizo la estructura de las tablas, seria algo asi?

    TABLA USUARIOS
    ID_Privilegios int
    Clave varchar
    Usuario varchar
    ID_Usuarios int

    TABLA PRIVILEGIOS
    ID_Privilegios int
    Administracion bit
    Programacion bit
    Control_Calidad bit

    o la Tabla Privilegios iria simplemente asi
     TABLA PRIVILEGIOS
    ID_Privilegios int
    Privilegios varcha

    En tal caso que valla como la segunda como puedo crear una relacion de N privilegios a 1 usuarios... 
    En verdad estoy bien confudido... Si alguien tiene algun tutorial o que me explique al menos por favor...
    Muchas gracias...

    martes, 20 de octubre de 2009 20:56

Respuestas

  • Hola.

    El problema es complejo y va a ser difícil que resolvamos tus dudas siendo una cuestión muy amplia de análisis funcional y de datos de una aplicación. Pero bueno, a ver si al menos te damos unas ideas que te sirvan de guía.

    A nivel muy básico, sin agrupaciones de usuarios, permisos, etc, tienes dos entidades, usuarios y privilegios y una relación entre ambas, una MxN que deberás resolver con una tercera tabla, que será la que indique qué permisos tiene cada usuario. Por simplicidad, fijaría sólo permisos en positivo. Así, en una primera aproximación, esa tabla tendría 3 campos, el Id_Usuario, el Id_Permiso y un bit que indicaría si tiene o no permiso.

    Luego seguramente necesitarás una gestión de permisos a grupos de usuarios con lo que tendrás una tabla de grupos y una tabla que relaciones grupos con permisos (también con un bit para indicar si se cuenta o no con el permisos).

    Por último, requerirás de usuarios administradores, esa propiedad bien puede ser un campo a nivel de la tabla de usuario o de grupos de usuario. En el caso de que esté marcada, no habría que verificar ningún otro permiso para realizar cualquier operación en la aplicación.

    Por lo tanto, en tu aplicación tendrías que componen una consulta que uniera los permisos individuales más los permisos por pertenecer a cada grupo al que pertenezca más el hecho de ser un usuario administrador. Es algo complejo, pero abordable sin duda.

    Si tienes dudas concretas, nos dices.


    Alberto López Grande (Visita mi blog en http://qwalgrande.blogspot.es/)
    martes, 20 de octubre de 2009 23:17
    Moderador

Todas las respuestas

  • Hola.

    El problema es complejo y va a ser difícil que resolvamos tus dudas siendo una cuestión muy amplia de análisis funcional y de datos de una aplicación. Pero bueno, a ver si al menos te damos unas ideas que te sirvan de guía.

    A nivel muy básico, sin agrupaciones de usuarios, permisos, etc, tienes dos entidades, usuarios y privilegios y una relación entre ambas, una MxN que deberás resolver con una tercera tabla, que será la que indique qué permisos tiene cada usuario. Por simplicidad, fijaría sólo permisos en positivo. Así, en una primera aproximación, esa tabla tendría 3 campos, el Id_Usuario, el Id_Permiso y un bit que indicaría si tiene o no permiso.

    Luego seguramente necesitarás una gestión de permisos a grupos de usuarios con lo que tendrás una tabla de grupos y una tabla que relaciones grupos con permisos (también con un bit para indicar si se cuenta o no con el permisos).

    Por último, requerirás de usuarios administradores, esa propiedad bien puede ser un campo a nivel de la tabla de usuario o de grupos de usuario. En el caso de que esté marcada, no habría que verificar ningún otro permiso para realizar cualquier operación en la aplicación.

    Por lo tanto, en tu aplicación tendrías que componen una consulta que uniera los permisos individuales más los permisos por pertenecer a cada grupo al que pertenezca más el hecho de ser un usuario administrador. Es algo complejo, pero abordable sin duda.

    Si tienes dudas concretas, nos dices.


    Alberto López Grande (Visita mi blog en http://qwalgrande.blogspot.es/)
    martes, 20 de octubre de 2009 23:17
    Moderador
  • Hola.

    El problema es complejo y va a ser difícil que resolvamos tus dudas siendo una cuestión muy amplia de análisis funcional y de datos de una aplicación. Pero bueno, a ver si al menos te damos unas ideas que te sirvan de guía.

    A nivel muy básico, sin agrupaciones de usuarios, permisos, etc, tienes dos entidades, usuarios y privilegios y una relación entre ambas, una MxN que deberás resolver con una tercera tabla, que será la que indique qué permisos tiene cada usuario. Por simplicidad, fijaría sólo permisos en positivo. Así, en una primera aproximación, esa tabla tendría 3 campos, el Id_Usuario, el Id_Permiso y un bit que indicaría si tiene o no permiso.

    Luego seguramente necesitarás una gestión de permisos a grupos de usuarios con lo que tendrás una tabla de grupos y una tabla que relaciones grupos con permisos (también con un bit para indicar si se cuenta o no con el permisos).

    Por último, requerirás de usuarios administradores, esa propiedad bien puede ser un campo a nivel de la tabla de usuario o de grupos de usuario. En el caso de que esté marcada, no habría que verificar ningún otro permiso para realizar cualquier operación en la aplicación.

    Por lo tanto, en tu aplicación tendrías que componen una consulta que uniera los permisos individuales más los permisos por pertenecer a cada grupo al que pertenezca más el hecho de ser un usuario administrador. Es algo complejo, pero abordable sin duda.

    Si tienes dudas concretas, nos dices.


    Alberto López Grande (Visita mi blog en http://qwalgrande.blogspot.es/)

    ASu.... xD si se ve bien complejo, dejame analizar bien, trabajar y luego comento los resultados... Muchas gracias...
    miércoles, 21 de octubre de 2009 13:50