
Hallo Leute!
Wie schaffe ich es, daß ein Benutzer auf eine von ihm erstellte TEMPORARY-Tabelle zugreifen kann, ohne daß er gleich alles lesen kann oder ich einen Riesenaufwand betreiben muß?
Folgendes Szenario: Der Benutzer erstellt die Tabelle:
CREATE TEMPORARY TABLE `foo`.`bar` ...
Er hat als einzige Berechtigung CREATE TEMPORARY TABLES auf `foo`.* und somit funktioniert das.
Es schlägt jedoch jedes SELECT auf die Tabelle fehl, aufgrund fehlender Berechtigungen.
Bislang habe ich zwei mögliche Lösungen:
1. GRANT SELECT ON `foo`.* - funktioniert, aber dann darf er auch überall lesen. Schlecht!
2. Ich erstelle eine Dummy-Tabelle `foo`.`bar` und gebe SELECT-Rechte darauf. Die temporäre Tabelle "überlagert" dann die statische Dummy-Tabelle und erbt aber deren Berechtigungen. Das scheint daher wie gewünscht zu klappen, allerdings muß ich dann den Namen sämtlicher temporären Tabelle im Voraus wissen und diese manuell anlegen. Auch nicht gerade schön, aber damit könnte ich vorerst leben.
Weiß jemand eine elegantere Lösung?
Zitat:Weil TEMPORARY-Tabellen nur in der aktuellen Sitzung sichtbar sind und sich nicht gegenseitig beeinflussen, also jede Instanz sieht - auch bei identischem Namen - nur die eigene TEMPORARY-Tabelle und niemals die von anderen Instanzen.
fuckregistrierung postete
nur ne frage: warum TEMPORARY-Tabelle ?
Zitat:ich moechte mich da nicht festlegen, aber tabellen zu erstellen und wieder loeschen ist schneller und sicherer als abfragen??? ist mir neu.
ak postete
Man könnte das ganze natürlich auch mit einem Subquery lösen, in aller Regel ist das aber viel langsamer als der Weg über die temporäre Tabelle.
Zitat:Wie immer in der Informatik gibt es nicht ,,die'' Lösung, sondern mehrere Wege.
fuckregistrierung postete
ich moechte mich da nicht festlegen, aber tabellen zu erstellen und wieder loeschen ist schneller und sicherer als abfragen??? ist mir neu.