Rollenzugriff auf einzelne DATENSÄTZE verbieten oder zulassen

Kampfgummibaerlie

Datenbank-Guru
Beiträge
728
Ja, einen wunderschönen guten Abend, ich möchte zum Beispiel (altes Modell der Datenbank Mimoso) der Rolle "Mimoso" 100% Zugriff auf alle Tabellen/Funktionen/etc geben.

Ich möchte wiederum eine andere Rolle, nennen wir sie "Mimosos" (zB Mitarbeiter) nur insert in manche Tabellen ermöglichen.

Und, weil es so schön ist, eine dritte Rolle, nennen wir sie "Mimosokunde" welche nur auf manche Tabellen zugreifen darf.

Ich glaube, ich habe schon einmal eine Antwort bekommen, die exakt diese Bestimmungen erklärt hat...
war der Befehl dafür chmod in der Linux Maschine als Superuser des SQL-Servers?

Nur jetzt möchte ich zusätzlich nur auf eine begrenzte Anzahl an Datensätzen den Zugriff gewähren, ist das möglich?

Oder soll ich mir für so etwas ein weiteres Schema erstellen, um so etwas zu lösen?
Ich habe nichtmehr im Kopf, wo ich diese Situation hatte, wo es zum Einsatz kommen würde...

Danke :D
 
Werbung:
Nur jetzt möchte ich zusätzlich nur auf eine begrenzte Anzahl an Datensätzen den Zugriff gewähren, ist das möglich?
Eine Möglichkeit ist die Verwendung einer VIEW, die die entsprechenden Datensätze ausfiltert. Die Rolle bekommt dann nur Zugriff auf die VIEW, nicht auf die Tabelle(n).

Alternativ kann man das mit "row-level security" lösen - das ist aber etwas komplizierter zum Aufsetzen (und führt leider bei komplexen Abfragen manchmal zu schlechten Ausführungsplänen, und damit zu langsamen Abfragen)
 
Werbung:
Ich glaube, ich habe schon einmal eine Antwort bekommen, die exakt diese Bestimmungen erklärt hat...
war der Befehl dafür chmod in der Linux Maschine als Superuser des SQL-Servers?
Nein, dazu KEINE Dinge vom Betriebssystem, sonder die Fähigkeiten der Datenbank: GRANT und REVOKE

* GRANT
* REVOKE

RLS ist dann noch einen Zacken schärfer, aber ich denke, Du solltest zuerst einmal mit GRANT & REVOKE arbeiten.
 
Zurück
Oben