wie erreiche ich es, dass ein bestimmter Benutzer nur ganz
bestimmte Rechte bekommt?
Das ginge nur, wenn Du dem Benutzer in der geöffneten Session diese Rechte erteilst, also so, wie ich es oben mit der Rolle vorgeschlagen habe.
Ich müßte doch hierzu die Verbindung trennen und mit einem Benutzer mit anderen Rechten
wieder neu aufbauen.
Nein, nicht unbedingt. Schau Dir mal die Möglichkeiten an, die die role grants bieten.
Wie steuere ich die Rechte für viele Anwender mit nur einem angelegten
DB-Benutzer?
Über wechselnde Rollen oder gar nicht, soweit mir bekannt.
Und verhindere gleichzeitig, dass nie Daten das Backend verlassen, zu denen der Anwender keine Rechte besitzt?
Wenn Du es so machst, wie es üblich ist (Mehrschichtanwendung) nur durch Sorgfalt.
Alternativ baust Du wie vorgeschlagen eine eigene, anwendungsinterne Zwischenschicht, die anhand logisch zugewiesener Rollen für den jeweiligen User die Zugriffe auf die
DB prüft und erlaubt oder verbietet.