Oracle
 sql >> Base de données >  >> RDS >> Oracle

Meilleure pratique de conception de base de données d'autorisations de rôle d'utilisateur ?

Comme krokodilko l'a écrit dans son commentaire, cela dépend du niveau de flexibilité dont vous avez besoin.
J'ai mis en place des autorisations basées sur les rôles pour l'un de mes clients comme suit :

  1. Utilisateur (identifiant utilisateur (PK), nom d'utilisateur (unique), mot de passe (salé et haché ! ), nom, prénom, téléphone etc')
  2. Rôle (identifiant du rôle (PK), nom du rôle (unique), description du rôle)
  3. Permission (permission id (PK), permission name (unique)) - les onglets/écrans/actions vont ici
  4. Utilisateur vers rôle (ID utilisateur, ID de rôle) - PK est les deux colonnes combinées
  5. Role to Permission (role id, permission id) - PK est les deux colonnes combinées

Mais mon exigence était d'être aussi flexible que possible, et c'est un système qui continue de croître (6 ans et plus).

Je suppose que de nombreuses applications peuvent avoir l'utilisateur à jouer le rôle d'une relation un à plusieurs, au lieu d'une relation plusieurs à plusieurs comme dans mon cas, mais je n'irais pas coder en dur les autorisations ou le rôle des autorisations dans n'importe quelle application.

Explication supplémentaire :Conception de base de données de sécurité basée sur les rôles sur Qu'est-ce que je sais ?