OVH Cloud OVH Cloud

Trigger pour empecher l'accès

3 réponses
Avatar
Nicolas
Bonjour,

Je souhaiterais empecher l'acc=E8s =E0 une ligne d'une table=20
pour un utilisateur (la table concern=E9e se nomme F_COMPTET)

Si l'utilisateur 'toto' tente d'acc=E9der =E0 une ligne de la=20
table F_COMPTET dont le champ CT_TYPE =3D 2 alors un message=20
d'erreur doit s'afficher du style 'acc=E8s impossible'

Je voudrais que cela fonctionne pour la consultation or=20
j'ai vu qu'il =E9tait uniquement possible de faire des=20
triggers sur l'ajout, la mise =E0 jour ou encore la=20
suppression d'un =E9l=E9ment d'une table. Il faut que=20
l'utilisateur ne puisse pas du tout avoir acc=E8s =E0 la ligne=20
de la table.

Dans l'attente de toute suggestion

Merci

Nicolas

3 réponses

Avatar
Sébastien M
Salut Nicolas,

Une suggestion peut être serait de faire une vue sur la table en excluant
les données que tu veux cacher, un truc du genre:

CREATE VIEW F_COMPTET_VUE AS
SELECT col1, col2, etc....
FROM F_COMPTET
WHERE CT_TYPE <> 2


Tu interdis l'accès à ton utlisateur pour la table mais tu lui donnes accès
par contre à la vue. Y'a peut être mieux, mais c'est toujours une idée!
A+
Avatar
Nicolas
Merci pour ta suggestion mais en fait je ne peux pas
intervenir à ce niveau. En effet c'est un logiciel de
comptabilité SAGE qui accède à la table. Cette table doit
être F_COMPTET et pas une autre.

Il n'existe donc pas de mode d'accès du style ACCESSED
tout comme il existe INSERTED, UPDATED ou DELETED ?

Merci

Nicolas

-----Message d'origine-----
Salut Nicolas,

Une suggestion peut être serait de faire une vue sur la


table en excluant
les données que tu veux cacher, un truc du genre:

CREATE VIEW F_COMPTET_VUE AS
SELECT col1, col2, etc....
FROM F_COMPTET
WHERE CT_TYPE <> 2


Tu interdis l'accès à ton utlisateur pour la table mais


tu lui donnes accès
par contre à la vue. Y'a peut être mieux, mais c'est


toujours une idée!
A+


.



Avatar
Michel Walsh
Salut,


Il faut enlever l'accès à la table et de ne permettre qu'un accès
par une vue filtrante car autrement, l'utilisateur pourrait accéder
indirectement aux résultats cachés à l'aide de requêtes (du genre requête
totale) et de recoupements logiques.

Ainsi, si un utilisateur ne peut pas voir le salaire du patron, mais
peut voir la somme des salaires, et la somme des salaires, sauf celui du
patron, logiquement, une simple soustraction lui permet de connaître ce qui
était maladroitement caché.

N'ayant accès qu'à la vue, les enregistrements ne devant pas être
vus le demeureront **quelque soit** l'opération tentée. À bien des égards,
une vue se comporte comme une table, et si l'utilisateur ne sait pas qu'il
travaille avec une vue, filtrante, sans jointure, il peut bien s'imaginer
que c'est une table, en fait.



Espérant être utile,
Vanderghast, Access MVP



"Nicolas" wrote in message
news:06f701c3d5ff$09725350$
Merci pour ta suggestion mais en fait je ne peux pas
intervenir à ce niveau. En effet c'est un logiciel de
comptabilité SAGE qui accède à la table. Cette table doit
être F_COMPTET et pas une autre.

Il n'existe donc pas de mode d'accès du style ACCESSED
tout comme il existe INSERTED, UPDATED ou DELETED ?

Merci

Nicolas

-----Message d'origine-----
Salut Nicolas,

Une suggestion peut être serait de faire une vue sur la


table en excluant
les données que tu veux cacher, un truc du genre:

CREATE VIEW F_COMPTET_VUE AS
SELECT col1, col2, etc....
FROM F_COMPTET
WHERE CT_TYPE <> 2


Tu interdis l'accès à ton utlisateur pour la table mais


tu lui donnes accès
par contre à la vue. Y'a peut être mieux, mais c'est


toujours une idée!
A+


.