Bodo's Dynamics NAV Blog

Bodo ist ein Dynamics NAV Urgestein. Er programmiert NAV seit DOS Zeiten und hat auch keine Scheu vor .NET. Viele Neueinsteiger wurden von ihm in den letzten Jahren zu NAV Entwicklern ausgebildet.

In diesem Blog veröffentlichen Bodo und andere Superhelden Interessantes aus der Welt von Dynamics NAV.

Der Unterschied zwischen den Sicherheitsmodellen Standard und Enhanced

Verfasst von Bodo am Freitag, 13. Januar 2012

Tags: sicherheit, sicherheitsmodelle, standard, enhanced

In meinen Schulungen für angehende Dynamics NAV Entwickler wird regelmäßig die Frage gestellt, worin der Unterschied zwischen den Sicherheitsmodellen Standard und Enhanced der Datenbank besteht. Antwort:

Zunächst grundsätzliches. Der NAV Client nutzt für den Zugriff auf die SQL Server Datenbank das Konzept der Anwendungsrollen (siehe dazu http://msdn.microsoft.com/de-de/library/ms190998.aspx). Die in NAV eingerichteten Datenbank- und Windows-Anmeldungen haben keine Berechtigungen für die Datenbanktabellen, sondern tragen lediglich die SQL Server Rolle Public. D.h. nach erfolgreicher Anmeldung des NAV Clients über einen Datenbank- bzw. Windows-Benutzer, erfolgt der Zugriff auf die Datenbanktabellen über die Anwendungsrolle. Das Kennwort der Anwendungsrolle kennt nur der NAV Client, so dass die Anwendungsrolle nicht von anderen Anwendungen genutzt werden kann. Gleichzeitig können die Benutzer mit ihrer Benutzerkennung über ein externes Tool nicht auf die NAV Tabellen zugreifen.

Die Anwendungsrollen finden wir im SQL Server Management Studio unter Datenbanken -> [Name der Datenbank] -> Sicherheit -> Rollen -> Anwendungsrollen.

Und nun zum Unterschied zwischen den Sicherheitsmodellen Standard und Enhanced. Wenn wir Standard einstellen, gibt es genau eine einzige Anwendungsrolle und diese wird von allen Benutzern verwendet. Wenn wir Enhanced einstellen, verwendet jeder Benutzer eine eigene Anwendungsrolle.

Das bedeutet für das Sicherheitsmodell Standard:

  • Die eine Anwendungsrolle hat die Berechtigungen zum Lesen, Einfügen, Ändern und Löschen von Datensätzen für alle Datenbanktabellen.
  • Die tatsächlichen Berechtigungen eines Benutzers gemäß seiner NAV Rollen werden vom NAV Client geprüft.
  • Wenn wir eine neue Datenbanktabelle anlegen, wird diese automatisch der Anwendungsrolle hinzugefügt. Das gilt sowohl für das Anlegen über den Table Designer als auch bei Importieren von Tabellen über das Import Worksheet (.fob und .txt).
  • Synchronisieren (Extras -> Zugriffsrechte -> Synchronisieren im NAV Client) löscht die Anwendungsrolle und baut diese neu auf.
  • Wir können unsere Active Directory Gruppen als Windows-Anmeldungen verwenden.

Das bedeutet für das Sicherheitsmodell Enhanced:

  • Jede Anwendungsrolle bildet genau die Berechtigungen eines Benutzers gemäß der Zugriffsrechte seiner NAV Rollen ab.
  • Die Prüfung der Berechtigungen kann daher vom SQL Server übernommen werden und muss nicht durch den NAV Client erfolgen.
  • Wenn wir eine neue Datenbanktabelle anlegen, wird diese nicht automatisch den Anwendungsrollen hinzugefügt. D.h., wir müssen anschließend alle Benutzerkennungen synchronisieren. Damit werden alle Anwendungsrollen gelöscht und neu aufgebaut.
  • Wenn wir die Zugriffsrechte einer NAV Rolle ändern, müssen wir alle Benutzerkennungen synchronisieren, die diese NAV Rolle verwenden.
  • Wenn wir die NAV Rollenzuordnung einer einzelnen Benutzerkennung ändern, müssen wir diese Benutzerkennung synchronisieren.
  • Um einzelne Benutzerkennungen zu synchronisieren, können wir „Einfache Anmeldung synchronisieren“ wählen. Dazu die Datenbank- bzw. Windows-Anmeldungen öffnen und die gewünschte Benutzerkennung auswählen.
  • Wir können nicht mit Active Directory Gruppen arbeiten. Es ist zwingend notwendig, für jede Benutzerkennung eine eigene Windows-Anmeldung zu haben.

Fazit: Der administrative Aufwand ist mit dem Sicherheitsmodell Enhanced deutlich höher. Und wir haben gegenüber dem Sicherheitsmodell Standard keine Vorteile, sondern eher Nachteile, da wir auch keine Active Directory Gruppen verwenden können. Ich rate daher jedem zur Verwendung des Sicherheitsmodells Standard. Und bitte daran denken, dass bei einer neuen Datenbank die Standardeinstellung Enhanced und nicht Standard ist…

PS: Es würde mich nicht wundern, wenn Microsoft mit NAV „7“ das Konzept der Anwendungsrollen nicht mehr verwenden wird.