Fragensteller
Leserechte auf Kunden (Datensatz-) ebene

Frage
-
Hallo,
wir haben eine SQL-Server 2008 R2 Datenbank mit diversen Tabellen und Abfragen.
Nun ist es so, dass die Kollegen nur die Daten ihrer eigenen Kunden sehen dürfen.
Dabei gibt es durchaus überlappende Bereiche.Beispiel:
Kollege 1 soll Daten der Kunden A, B, C, D
Kollege 2 soll Daten der Kunden B, D, X, Y
Kollege 3 soll Daten der Kunden A, C, X, Ylesen dürfen. Als Frontened dient eine MS-Access Datenbank.
Wir könnten zwar an Access nur die jeweiligen Querys anbinden aber damit die Views auch Ergebnisse bringen, müssten die Kollegen doch Leserechte auf die Quelltabelle haben, sonst liefert die View doch kein Ergebnis, oder?Wenn ich da richtig liege, wie kann ich dann den lesenden Zugriff auf die gesamten Daten verhindern?
Gruß
cheapy
Alle Antworten
-
Hi,
Du kannst schon die Leserechte auf die Tabelle verweigern und dann welche auf die Views geben. Evtl. wäre es aber auch sinnvoller, die Daten über eine View, Funktion, SP, ... direkt richtig anhand der Useranmeldung zurückzugeben.
D.h. Du liest bspw. in der Funktion den aktuell angemeldeten Benutzer aus und kannst dadurch dann die Kundendaten auslesen, die für ihn zugänglich sind.
SELECT * FROM Kundendaten WHERE Kundennummer IN ( SELECT Kundennummer FROM BenutzerZuKundennummern WHERE Benutzer = SUSER_SNAME() )
Hierfür brauchst Du natürlich eine ZUordnungstabelle mit den Benutzernamen/Kundennummern.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort vorgeschlagen Christoph MuthmannEditor Mittwoch, 13. April 2016 06:34
-
war aber davon ausgegangen das der jeweilige User dann Leserechte für die jeweilige Quelltabelle benötigt.
Aufgrund der Besitzverkettung ist das nicht nötig, das der User Rechte auf die Quelltabellen benötigt, nur auf die View.Olaf Helper
[ Blog] [ Xing] [ MVP]