IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Modélisation Discussion :

Droits d'accès par groupe - Deux façons de faire


Sujet :

Modélisation

  1. #1
    Membre éclairé
    Avatar de DamKre
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2007
    Messages
    517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2007
    Messages : 517
    Par défaut Droits d'accès par groupe - Deux façons de faire
    Bonjour

    Refaisant plusieurs db plus aux normes, j'hésite entre deux façons de faire.

    Objectif
    Une table T_Users, avec les utilisateurs. Chaque utilisateur appartient à un groupe, lui donnant des droits (0= Aucun accès, 1 = Lecture, 2 = Écriture) sur des procédures et formulaires.

    1-Façon actuelle
    Une table T_Groupes (donc, un utilisateur appartient à un groupe).
    Chaque champ de la table correspond à un droit (exemples droit_parametres, droit_XXX, droit_XXX_1, droit_XXX_2, droit_YYY - et je simplifie).
    À l'ouverture d'un formulaire, par exemple, je teste le droit de l'utilisateur et refuse l'ouverture ou verrouille certains éléments.
    Cela fonctionne, mais plus on veut distinguer les droits, plus il y a de champs (et il me semble qu'il y a une limite).

    2-Façon envisagée
    Une table T_Groupes, pour le nom des groupes
    Une table T_Droits, pour la liste des droits (champs : Id_Droit, Droit_Nom, Droit_Niveau (0,1,2))
    Une table T_Autorisations, reprenant un Id_Groupe, un lien Id_Droit, un Autorisation_Niveau
    L'avantage est d'avoir une "infinité" de droits, et de permettre d'être dans plusieurs groupes.
    À l'ouverture d'un formulaire, par exemple, on teste la MaxAutorisation pour l'utilisateur.
    Cela me semble plus lourd, permet à un petit futé de voir les droits en clair et d'outrepasser la sécurité pour modifier, ...
    Autre inconvénient selon moi: en cas d'erreur dans la table T_Droits, ou de modification du nom d'un droit, cela pourrait faire bugger la procédure d'octroi d'un accès à l'ouverture d'un formulaire ou exécution d'une procédure.

    J'hésite donc entre garder ma façon actuelle (limitée, mais fonctionne) et cette nouvelle façon envisagée.
    J'espère avoir été clair.

    J'attends vos avis.
    Merci à vous!

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 574
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 574
    Par défaut
    Salut,

    Faire le minimum, c'est s'exposer a la Loi de Murphy (aussi appelée Loi de l'emmerdement maximum).

    Pose toi les bonnes questions: Ton appli est-elle appelée à évoluer ?
    Y aura t'il beaucoup d'utilisateurs ?
    Si tu répond oui a l'une de ces deux question, voit les choses en grand (qui peut le plus, peut le moins).

  3. #3
    Membre éclairé
    Avatar de DamKre
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2007
    Messages
    517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2007
    Messages : 517
    Par défaut
    Bonjour,

    Merci d'avoir répondu.

    Je ne comprends pas bien que "Faire le minimum, c'est s'exposer a la Loi de Murphy (aussi appelée Loi de l'emmerdement maximum)"...

    Sinon:
    Citation Envoyé par deedolith Voir le message
    Ton appli est-elle appelée à évoluer ?
    Oui, mais sans grande conséquence sur les droits, puisqu'il y a 99% de chance qu'il ne faille pas en ajouter.

    Citation Envoyé par deedolith Voir le message
    Y aura t'il beaucoup d'utilisateurs ?
    Habituellement 5 par "entreprise", donc non.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    646
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2011
    Messages : 646
    Par défaut
    Bonjour
    Voici comment je gère ça habituellement. Ca ne correspond pas exactement à ce que tu souhaites mais c'est une piste
    Une table reprenant les différentes options, une table reprenant les droits sur ces différentes options par USER
    Une routine qui vérifie si l'utilisateur connecté a le droit d'utiliser l'option demandée
    Une routine sur clic d'un bouton pour vérifier l'accès au formulaire lié
    Nom : Capture d'écran 2026-01-14 101159.png
Affichages : 61
Taille : 103,1 Ko

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Public Function pFctRechDroit(IntDroit As Integer) As Boolean
        Dim RecDroit As DAO.Recordset
        Set RecDroit = CurrentDb.OpenRecordset("Select * From QryDroit where dropt=" & IntDroit)
     
        If RecDroit.EOF Then
            pFctRechDroit = False
        Else
            pFctRechDroit = True
        End If
        RecDroit.Close
        Set RecDroit = Nothing
    End Function
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub CmdOpt4_Click()
    If pFctRechDroit(130) = True Then
        DoCmd.OpenForm "FrmProjet"
    Else
        If pFctRechDroit(1300) = True Then
            DoCmd.OpenForm "FrmProjetC"
        Else
            MsgBox "Accès refusé", , "Gestion des Droits"
        End If
    End If
    End Sub

Discussions similaires

  1. Réponses: 1
    Dernier message: 04/05/2011, 09h46
  2. [Hudson] Gestion des droits d'accès par job
    Par rseM2 dans le forum Intégration Continue
    Réponses: 4
    Dernier message: 20/08/2009, 19h16
  3. Réponses: 1
    Dernier message: 05/03/2009, 14h22
  4. [MySQL] Systeme de gestion des droit d'accès par base de donnée
    Par megacool dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 04/01/2009, 11h53
  5. Changer les droits d'accès par VBA
    Par electrosat03 dans le forum Sécurité
    Réponses: 2
    Dernier message: 20/12/2006, 15h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo