je doit implementer une gestion droits utilisateur a plusieurs des tables d'une bd
par exemple je doit pouvoir specifier que tel utilisateur a le droit de modifier tel ligne (en fonction de la clé) un autre pas.
en gros il y a 4 types de droits
Code :
- Read => lutilisateur peut voir la ligne
- Write => il peut modifier les valeurs
- Delete =>suppression
- Add=>...
|
le probleme c pour l'implentation
j'ai pense a plusieurs systemes:
1) une table supplementaire qui gere les droits
Code :
- ex:
- ref_table ref_key ref_user user_rights
- TABLE1 154 6231 7<= valeur binaire indiquant les droits RWDA
- TABLE1 156 6231 5
- TABLEB 154 6231 4
|
l'inconvenient c quil risque davoir bcp de lignes dans cette table , puis c pas vraiment performant (jointure a chaque fois ) par contre pas besoin de modifier le schema existant
2) ajout d'une colonne pour chaque table dans lequel on a une gestion des droits
Code :
- col1 col2 col3 col4 ... colx usr_rights
- .... .... .... .. ... 3214 <= valeur binaire sur 64 positions, puisquil faut 4 bit par droit cela nous fait 16 groupes d'utilisateurs ce qui est suffisant
|
---------------------------------------------------------
le probleme c que je doit egalement specifier pour chaque ligne quels sont les colonnes dont l'utilisateur a droit
dans limplentation no1 ca peut se faire mais pour lautre c plus compliqué
il me faudra entre 256 et 512 bit par ligne ce qui risque detre assez lourd
a moins quil n'existe qqch de deja tout fait dans le sgbd pour ce genre de probleme , ce dont je ne connais pas
cela doit tourner sous Access et SQL server