Accorder à un utilisateur l'autorisation de consulter un mysql vue
La question ci-dessous se rapporte à MySQL 5.1.44
Disons que j'ai une table avec les enregistrements insérés par les différents utilisateurs de mon application. Comment puis-je donner à un utilisateur spécifique d'accès à seulement voir ses enregistrements dans cette table? J'ai pensé à la création d'un VIEW
avec l'ensemble de son dossier, mais je ne sais pas comment créer un utilisateur mysql qui peut seulement voir que VIEW
.
Donc, est-il possible de créer une base de données mysql l'utilisateur n'a accès qu'à un seul VIEW
? cela peut également être fait de sorte qu'ils accès en lecture seule à qui VIEW
?
Merci!
PS: Ce que j'appelle utilisateurs dans mon exemple sont vraiment des filiales qui veulent avoir accès à leurs dossiers à leurs propres applications.
- Les vues sont en lecture seule si ils n'ont pas de déclencheurs.
- Pour une vue à être mis à jour, il doit y avoir un one-to-one relation entre les lignes de la vue et du nombre de lignes dans la table sous-jacente. Il y a aussi certaines autres constructions qui font de vue nonupdatable.
Vous devez vous connecter pour publier un commentaire.
GRANT SELECT ON database1.view1 TO 'someuser'@'somehost';
Outre
c'est mieux de faire
de sorte que beaucoup de SQL INTERFACE utilisateur de l'outil peut obtenir la définition de la vue et de travailler de façon appropriée pour la vue.
Source: Documentation De MySQL
Je crois que la question d'origine est en train de demander comment limiter les lignes à celles appartenant à un utilisateur donné. (L'idée de la création d'un point de vue par l'utilisateur, puis l'octroi juste que, semble être une solution de contournement.)
Vous pouvez le faire par l'insertion de l'utilisateur() de référence dans le tableau de données, puis de filtrage sur que.
De L'Utilisation De MySQL 5.6. Créer une vue qui limite SÉLECTIONNEZ simplement les enregistrements appartenant à l'utilisateur actuel:
Si vous voulez faire de l'affichage en lecture seule qui, je suppose que vous faites. Ensuite, vous devez créer la vue avec l'ALGORITHME = TEMPTABLE clause.
Cela permettra de rendre la vue à lire seul mérite d'avoir à créer une table temporaire.
Une autre façon d'obtenir en lecture seule et c'est dépend de vos données est de s'en tenir à une fonction d'agrégation. Par exemple, si vous avez un point de vue qui est basé sur une table et affiche toutes les colonnes, alors vous pouvez coller un distinct sur la sélectionner.