9. August 2007 11:31
Im Fall der Anmeldung über den Nav-Client werden die Nav-Rechte für den Zugriff verwendet und im Falle eine SQL-Anmeldung werden die SQL Rechte verwendet. richtig?
Hmmm ... stimmt so nicht ganz. Man muss aufpassen, über welche Zugriffsrechte man spricht ...
Meldet man sich über den NAV Client an, so findet zunächst eine Authentifizierung statt; also die Überprüfung von Benutzer ID und Passwort. Wie gesagt, bei "Windows Auth." durch das OS, bei "Datenbank Auth." durch SQL Server.
Für jedes Login, das in NAV angelegt wurde - WIN und DB - wird eine "Application Role" ($ndo$ar$...) erstellt.
Jeder Benutzer ist SQL Server seitig zudem der Serverrolle und Datenbankrolle "public" zugeordnet; damit erhält der Benutzer grundlegenden Zugriff auf Server und Datenbank.
Nun ordnet C/SIDE dem Benutzer die jeweilige "Application Role" zu. Diese Rolle beinhaltet nun die expliziten Zugriffsrechte pro Tabelle auf Basis der in NAV konfigurierten Zugriffsrechte (die besagte Übersetzung!).
Deshalb ist ja stets diese Synchronisierung notwendig; hier werden die NAV Zugriffsrechte in die jeweiligen AR übertragen.
Nun kann SQL Server sicherstellen, daß der Benutzer nur auf zulässige Tabellen zugreift.
In NAV kommt nun die Zugriffsrechte auf Forms, Reports, etc. hinzu. SQL Server kennt diese Objekte gar nicht; die Steuerung erfolgt ausschließlich via C/SIDE.
Wenn man nun von "außen" auf den SQL Server zugreift, so ist das Verfahren analog:
1. Authentifizierung
2. Zugriffsrechte via Rollen
Hier hängt es also auch davon ab, welche Server- und DB-Rollen dem Benutzer zugeordnet sind. Es ist prinzipiell auch möglich, eigene Rollen - auch Anwendungsrollen - zu "bauen" und einem Login zuzuweisen.
D.h. wenn ein in NAV angelegtes Login über einen anderen Kanal - also nicht via C/SIDE - auf den Server bzw. die Datenbank zugreift, so treten nur die Server- und DB-Rollen in Kraft; die "
Anwendungsrolle" spielt keine Rolle. Somit hat der Benutzer
andere Rechte als würde er über C/SIDE kommen.
Der Vollständigkeit halber sei noch gesagt, daß bei Benutzern der Server Rolle "sysadmin" keine weiteren Rechte-Zuordnungen stattfinden: Einmal Authentifiziert darf er alles.