30. April 2015 15:26
Kozure hat geschrieben:Erweitert: Navision UND der SQL Server kennen die Tabellenberechtigungen.
Standard: Nur Navision kennt die Tabellenberechtigungen, auf SQL Server Ebene hat kein User direkt Rechte um Tabellendaten zu lesen.
Das ist so nicht richtig!
Standard:
erfordert xp_ndo_enumusersids
==> es wird
eine einzige SQL "Application Role" für die DB erstellet - "$ndo$shadow". Diese Rolle enthält soz. alle "übersetzten" NAV Tabellenzugriffsrechte in SQL. Sobald eine Tabelle erstellt/geändert wird, werden die SQL Rechte
sofort in dieser AR verankert; es ist keine explizite Synchronisierung erforderlich.
Alle NAV Logins verwenden die selbe AR.
Erweitert:
erfordert xp_ndo_enumusergroups
==> für jedes NAV Login wird eine
separate AR erstellt ("$ndo$ar${guid}"). Jede AR enthält
pro Login die übersetzten SQL Rechte.
Bei Tabellenänderungen etc. müssen ALLE diese Rollen explizit synchronisiert werden; d.h. alle AR werden dabei gelöscht und neu aufgebaut (und das dauert ätzend lange).
Weitere Unterschiede siehe NAV Doku.
Außerhalb dieser "Application Roles" hat jeder NAV User per se nur "public" Rechte auf dem SQL Server (also kein Zugriff auf Tabellen etc. möglich); egal ob "Standard" oder "Erweitert". Möchten diese User direkt auf die Tabellen zugreiffen, dann müssen die SQL-seitigen Rechte explizit vergeben werden.