Erteilen Sie einem Benutzer die Berechtigung, nur eine mysql-Ansicht anzuzeigen
Folgende Frage bezieht sich auf die MySQL-5.1.44
Sagen wir ich habe eine Tabelle mit Datensätzen eingefügt, die von verschiedenen Benutzern meiner Anwendung. Wie kann ich einen bestimmten Benutzer nur Zugang zu finden, seine/Ihre Einträge in dieser Tabelle? Ich habe gedacht, über das erstellen eines VIEW
mit seiner/Ihrer Aufzeichnungen, aber ich weiß nicht, wie man erstellen Sie einen mysql-Benutzer, die können nur sehen, dass VIEW
.
So, ist es möglich, erstellen Sie einen mysql-Benutzer, der nur Zugriff auf eine einzige VIEW
? kann dieser user auch gemacht werden, so dass Sie nur-lese-Zugriff auf das VIEW
?
Dank!
PS: Was ich nennen Benutzer in meinem Beispiel sind wirklich Tochtergesellschaft Büros, die Zugriff auf Ihre Aufzeichnungen mit Ihren eigenen Anwendungen.
InformationsquelleAutor der Frage Nelson | 2010-06-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
GRANT SELECT ON database1.view1 TO 'someuser'@'somehost';
InformationsquelleAutor der Antwort Naktibalda
Neben
ist es besser auch tun
so, dass eine Menge von SQL-UI-tool können die view-definition und arbeiten entsprechend für die Ansicht.
InformationsquelleAutor der Antwort Dexin Wang
Quelle: MySQL-Dokumentation
InformationsquelleAutor der Antwort Anax
Ich glaube, die ursprüngliche Frage ist tatsächlich zu Fragen, wie zum einschränken der Zeilen auf diejenigen, die im Besitz eines bestimmten Benutzers. (Die Idee der Schaffung einer Ansicht pro Benutzer und erlauben nur, dass, scheint, wie ein workaround.)
Können Sie tun Sie dies, indem Sie den Benutzer() Referenz auf die Daten-Tabelle, und dann filtern.
Verwendung Von MySQL 5.6. Erstellen Sie eine Ansicht, die Grenzen MARKIEREN, um nur Datensätze, die im Besitz des aktuellen Benutzers:
InformationsquelleAutor der Antwort Rich Fried
Wenn Sie wollen, um die Sicht zu Lesen nur was ich vermute, Sie tun. Dann erstellen Sie die Ansicht mit dem ALGORITHM = TEMPTABLE-Klausel.
Dadurch wird der Blick nur Lesen Tugend haben, erstellen Sie eine temporäre Tabelle.
Einem anderen Weg zu erreichen, Lesen Sie nur, und dies ist, hängt von Ihren Daten-stick, eine Aggregatfunktion. Wenn Sie zum Beispiel eine Ansicht, die basierend auf einer Tabelle und zeigt alle Spalten, dann kann man den Stock ein distinct in der select.
InformationsquelleAutor der Antwort Daniel Fisher