Re: Droit sur les colonnes et select étoile
Salut,
le problème vient justement de ce que l'«*» est un joker qui est l'équivalent de «toutes les colonnes» Rien n'indique que ça doit être limité aux colonnes réservées à l'utilisateur connecté.
Donc il reste deux options possibles :
- La plus évidente que tu voudrais éviter, nommer exclusivement les colonnes dont l'utilisateur veut les informations;
- Créer des vues propres aux utilisateurs ne comportant que les colonnes auxquelles ils auraient normalement accès sur les tables correspondantes. Partant de là, au lieu de «SELECT * FROM biofichiers.Magasin» l'utilisateur effectuerait sa requête sur «SELECT * FROM biofichiers.v_canalbio_Magasin». La vue est créée par rapport à ses droits et donc nommée avec un prefixe (v_ indiquant une vue et un nom d'utilisateur ou encore un numéro si plusieurs utilisateurs prtagent les mêmes restrictions d'accès) : ça pose cependant un problème pour les requêtes en écriture puisqu'on ne peut pas sauvegarder les données dans une vue et qu'il faut envoyer les données vers les tables, mais à ce stade, c'est peut-être moins compliqué à gérer;
Dernière option à envisager : gérer le problème par programmation. Il faudrait dans ce cas intercepter les «SELECT *» et générer dynamiquement la même requête en remplaçant l'«*» par le nom de toutes les colonnes à l'exception de celles non autorisées.
En tout état de cause, le «SELECT *» est à éviter en toutes circonstances. C'est certes pratique en cours de développement, on a juste besoin de voir rapidement un résultat sans se torturer les méninges. Dans la pratique par la suite, on utilise rarement toutes les données retournées en ignorant un certain nombre de colonnes. De ce fait, des données inutiles sont retournées et nuisent aux performances générales de l'application en encombrant sans gain les transferts entre l'application et le SGBD.
______________________________________________________________
Une question bien formulée, c'est un problème bien compris : ça représente déjà les 3/4 de la réponse ;)
Subject
Views
Written By
Posted
7420
January 03, 2010 10:45AM
Re: Droit sur les colonnes et select étoile
3888
January 08, 2010 07:45AM
2845
January 08, 2010 08:03AM
3093
January 08, 2010 09:06AM
2712
January 08, 2010 09:37AM
2870
January 08, 2010 09:48AM
2673
January 08, 2010 11:07AM
3218
January 08, 2010 12:19PM
Sorry, you can't reply to this topic. It has been closed.
Content reproduced on this site is the property of the respective copyright holders.
It is not reviewed in advance by Oracle and does not necessarily represent the opinion
of Oracle or any other party.