Meinst du mit ADS das ActiveDirectory (AD)?
Den Dateischutz machst du über die integrierten Sicherheitsmechanismen von Windows. Das NTFS-Dateisystem hat ein
Access-Control-List (
ACL) Schutzsystem integriert.
Wenn du mit ADS den Adv.Database-Server meinst, dann wird es schwieriger.
Wenn du Datensätze (Reihe in einer Tabelle) in einer Datenbank schützen willst, dann wirst du an jeden Datensatz eine
ACL hängen müssen. Datenbanken schützen nur auf Tabellenbasis (select,insert,delete,update).
Diese
ACL abzufragen ist allerdings auch nicht ohne.
Der Programm dürfte diesen Schutz nicht abfragen!
Erklärung folgt:
Der Benutzer müsste nur über Views und StoredProcs auf die Tabellen indirekt zugreifen dürfen.
Würde der Nutzer ein Datenbanktool nutzen und hätte das select-Recht für die Tabelle, dann könnte er an der
ACL vorbei die Daten lesen.
Die Views und StoredProcs begrenzen die Sicht/Funktion auf Zeilen Ebene. Somit könnte der Nutzer trotz Datenbankverbindung nur die erlaubten Daten lesen. Für die Tabellen hat er dann natürlich keine Rechte.
Was für Rechte möchtest du in deiner Anwendung vergeben?
* Darf Funktion X
* Darf Funktion Y nicht
Da würde ich mich auch an Windows orientieren.
Eine
ACL Liste muss her, welche den Zugriff auf die Funktionen regelt.
Vom Benutzer fragst du dann den Sicherheits-/Prozess-Token von Windows ab. Dort sind seine SIDs von den Benutzerkonto und allen seinen Sicherheitsgruppen gespeichert.
Mit denen ermittelst du dann die Rechte aus der
ACL.