MySql User mit Rechten nur zum Ausführen von Stored Procedures?



  • Hi alle,

    ich habe eine Datenbank in MySQL, mit der ausschließlich mittels Stored Procedured kommuniziert wird.

    Da ich diese aus der Hand geben muss (für eine Messe) würde ich gerne den nutzer, er via Website mit der DB kommuniziert (und dessen login daten ich folglich rausgebe im quellcode) ausschließlich Rechte für die SP geben. Erste Tests, nur Execute Rights zu vergeben schlagen aber fehl, weil er dann nicht die SELECTs etc machen kann.

    Hat jemand von Euch eine Idee, wie ich die DB schützen kann?

    Beste Grüße

    Solick



  • Hallo,

    Ich wuerde irgendwo ein REST service dem Endbenutzer zur verfuegung stellen. Damit koennte man dann den Zugriff relativ gut regeln und Daten als XML oder JSON bereitstellen.



  • Fuer die Selects kannst du auch Views in einer frischen DB oae. anlegen.



  • MSSQL löst das so, dass man bei der Stored-Procedure angeben kann mit welchem Account sie ausgeführt werden kann. Dabei gibt es die Option "as creator" (sinngemäss, weiss nicht mehr wie der genaue Wortlaut ist). Damit geht das dann. Der der die SP definiert muss die nötigen Rechte für SELECT etc. haben, der der sie ausführt braucht dann nur Execute auf die SP, da der Code der SP ja dann unter dem anderen Account läuft.

    Ob MySQL etwas ähnliches hat weiss ich nicht, wäre aber möglich.

    ps: Bei MySQL sollte es mit "SQL SECURITY DEFINER" gehen, was laut Doku aber Default sein sollte.


Anmelden zum Antworten