MSSQL: Zugriff auf Datensatzebene limitieren

Hallo zusammen,

ich brauche mal eine Idee.

Grundsätzliches Problem:
Es existiert eine Tabelle mit vielen Daten auf dem SQL-Server (2008 R2). Die Daten sollen mehreren Personen per ODBC in Excel zugänglich gemacht werden. Problem: Jede Person darf nur bestimmte Datensätze sehen, es gibt aber auch Personen die mehr bzw. alles sehen dürfen. (Das ganze natürlich dynamisch, d.h. die Berechtigungen können sich ändern.)
Bisher habe ich dieses Problem dadurch gelöst, dass ich die ursprünglichen Daten ganz einfach vervielfältigt, mit einer weiteren Spalte (UserID), gespeichert habe. Alternativ hatte ich auch schon mal die Vervielfältigung in einer View, durch die ausgiebige Verwendung von UNION ALL, erreicht ohne dass ich in einer Tabelle die Daten speichere. In der MS-Query-Abfrage, welche die Daten mit Excel verknüpft, brauchte man dann einfach nur den entsprechenden Filter einzubauen, und es werden nur noch die entsprechenden Daten angezeigt.

Konkretes Problem:
Nun ja, bei einer einzigen Tabelle, die auch nicht ganz so groß ist, kann man das ja mal so machen wie oben beschrieben. Leider möchte ich das jetzt aber auf eine ganze Datenbank anwenden. D.h. es wird alle Tabellen betreffen. Die Tabellen sind zu allem Überfluss auch noch riesengroß, da die Quelldaten aus einem ERP-System kommen.

Kann mir jemand verraten, wie ich diese Problematik am besten angehe?

Danke für jeden brauchbaren Hinweis.

MfG
Stephan

Moin,

das geht man am besten mit den dafür vorgesehenen SQL-Mitteln an und die nennen sich Views. Danach kommen die Rechtevergaben für den jehweiligen User mit Grant.

Beispiel View

CREATE VIEW V\_Customer
AS SELECT First\_Name, Last\_Name, Country
FROM Customer 
GRANT ALL
TO USER22; 

HTH

David

Mir ist gerade aufgefallen dass ich nicht richtig gelesen habe. Du hast es ja schon mit Views probiert.

Ich denke andere SQL-Mittel gibt es nicht. Du kannst nun nur noch folgendes machen:

Schau ob es diverse Erweiterungen für euer ERPS gibt um die daten Zielgerecht zu exportieren. Wenn die Daten nur exportiert werden, fällt natürlich das Problem an dass die Daten nicht aktuell gehalten werden. Logisch, da keine Verknüpfung besteht.

Zweite variante ist ein zusätzliches, auf euch zugeschnittenes Softwaresystem für diesen Aufgabenbereich. Wenn ihr Programmierer habt, lasst sie nach lösungen suchen.

Dritte Variante ist eine VB-Lösung. Ich halte nicht viel von VB und kenn mich damit auch nicht wirklich aus. Es kann allerdings mehr als eine einfache ODBC-Verknüpfung auf Tabellen.

Vierte Variante ist das die Leute einfach direkt auf dem ERPS arbeiten. Das ist natürlich nur möglich wenn es die nötigen Rechtevergaben bereit hält.

Hallo David,

zunächst einmal Danke für Deine Antwort.

Mir ist gerade aufgefallen dass ich nicht richtig gelesen
habe. Du hast es ja schon mit Views probiert.

Ich denke andere SQL-Mittel gibt es nicht.

Das hatte ich bereits befürchtet.

Du kannst nun nur
noch folgendes machen:

Schau ob es diverse Erweiterungen für euer ERPS gibt um die
daten Zielgerecht zu exportieren. Wenn die Daten nur
exportiert werden, fällt natürlich das Problem an dass die
Daten nicht aktuell gehalten werden. Logisch, da keine
Verknüpfung besteht.

Ist ne Eigenentwicklung für die es keine fertigen Lösungen zu kaufen gibt.

Zweite variante ist ein zusätzliches, auf euch zugeschnittenes
Softwaresystem für diesen Aufgabenbereich. Wenn ihr
Programmierer habt, lasst sie nach lösungen suchen.

Ich bin der Programmierer der hier nach einer Alternative, die es wohl nicht gibt, gesucht hat. :wink:

Dritte Variante ist eine VB-Lösung. Ich halte nicht viel von
VB und kenn mich damit auch nicht wirklich aus. Es kann
allerdings mehr als eine einfache ODBC-Verknüpfung auf
Tabellen.

Von einer VB-Lösung halte ich auch nicht viel.

Vierte Variante ist das die Leute einfach direkt auf dem ERPS
arbeiten. Das ist natürlich nur möglich wenn es die nötigen
Rechtevergaben bereit hält.

Geht nicht. Die Daten sind sehr komplex und werden erst aufwendig „de-normalisiert“ damit auch „Normalsterbliche“ damit arbeiten können.

Ich werde wohl weiterhin eine Lösungsansatz über Views verfolgen.

MfG
Stephan