MySQL Forums
Forum List  »  French

Re: Droit sur les colonnes et select étoile
Posted by: Jean Molliné
Date: January 08, 2010 07:45AM

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 ;)

Options: ReplyQuote


Subject
Views
Written By
Posted
Re: Droit sur les colonnes et select étoile
3841
January 08, 2010 07:45AM


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.