[Résolu][SQL Server 2k] Droits utilisateurs + tables système
Bonjour!
Je souhaite, à l'aide des tables système, récupérer les droits qu'une personne a sur une table.
Par exemple l'utilisateur X a la capacité de consulter la table A, mais ne peux pas consulter le champ A.d. Par contre, l'utilisateur Y peut à la fois consulter et modifier A (sauf modifier le champ A.d).
J'ai défini ces droits en utilisant des rôles : ainsi X appartient à un rôle et Y à un autre rôle.
Comment puis-je faire pour déterminer qui peux faire quoi? car je souhaite, à partir de la base, récupérer les infos d'une personne en fonction de ses droits (faire apparaître tel champ a1 et pas a2), ou mettre dans un textbox les champs modifiables (=> identifier si la personne a des droits en update) et les autres dans des champs non éditables.
J'ai trouvé un lien dans la msdn décrivant les tables système, et après bidouille de requête :
Code:
1 2 3
| select sysobjects.name,sysusers.name,sysobjects.xtype from sysobjects,syspermissions, sysusers where syspermissions.grantee = sysusers.uid
and sysobjects.id=syspermissions.id order by sysusers.name
; |
J'obtient des noms de tables et de procédure, le nom du rôle concerné par la permission mais pas assez de détail (je pige pas tout dans ces tables) pour savoir quel champ et quel type de droit l'utilisateur possède. :cry:
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
ACTIVITE Collaborateur U U
AGENCE Collaborateur U U
AVOIR_POUR_RESPONSABLE Collaborateur U U
AVOIR_SUIVI_FORMATION Collaborateur U U
CLIENT Collaborateur U U
COLLABORATEUR Collaborateur U U
DOMAINEACTIVITE Collaborateur U U
FORMATION Collaborateur U U
INTERLOCUTEUR Collaborateur U U
MISSION Collaborateur U U
PROJET Collaborateur U U |
Merci d'avance
Charly