none
Leserechte auf Kunden (Datensatz-) ebene RRS feed

  • 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, Y

    lesen 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

    Dienstag, 12. April 2016 13:19

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

    Dienstag, 12. April 2016 13:51
    Moderator
  • Hallo Stefan,

    genau das mit der View und der Hilfstabelle hatte ich vor, war aber davon ausgegangen das der jeweilige User dann Leserechte für die jeweilige Quelltabelle benötigt.Gruß

    cheapy

    Dienstag, 12. April 2016 14:54
  • 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]

    Mittwoch, 13. April 2016 10:20