Bodo's Dynamics NAV und Business Central Blog
Bodo ist ein Dynamics NAV Urgestein. Er programmiert Navision seit DOS Zeiten und hat auch keine Scheu vor .NET und schon gar nicht vor Dynamics 365 oder Azure. Viele Neueinsteiger wurden von ihm in den letzten Jahren zu Entwicklern ausgebildet. In diesem Blog veröffentlichen Bodo und andere Superhelden Interessantes aus der Welt von Dynamics 365 Business Central / Dynamics NAV und Microsoft Azure.Der NAV-Client zeigt in der Übersicht der aktiven Sessions nur die eigene Session an
Tags: nav, session, übersicht, 2009, r2, sqlserverKennen Sie in Microsoft Dynamics NAV 2009 SP1 und NAV 2009 R2 das Phänomen, dass die Datenbankinformationen als aktive Sessions nur die eigene Session anzeigen und nicht mehr alle Sessions wie in früheren Versionen?
Damit alle Benutzer und nicht nur Benutzer mit der Systemrolle „sysadmin“ alle aktiven Sessions sehen, muss das Traceflag 4616 für den SQL Server gesetzt sein. Während NAV 2009 (ohne Servicepack) und ältere Versionen beim Start des NAV-Clients noch eine Fehlermeldung ausgeben, wenn das Traceflag nicht gesetzt ist, erscheint bei den Versionen NAV 2009 SP1 und NAV 2009 R2 keine Fehlermeldung mehr.
Um dieses Verhalten zu verstehen, müssen wir zwei Dinge klären: Erstens, woher kommen die Informationen über die aktiven Sessions? Und zweitens, mit welchen Berechtigungen greift der NAV-Client darauf zu?
Für die Anzeige der aktiven Sessions verwendet der NAV-Client die Sicht [dbo].[Session] in der NAV-Datenbank. Diese Sicht wiederum verwendet die Systemsicht [dbo].[sysprocesses] in der MASTER-Datenbank des SQL Servers, um die aktiven Sessions zu ermitteln.
Für Zugriffe auf den SQL Server verwendet der NAV-Client eine Anwendungsrolle. Wenn Sie das Sicherheitsmodell „Standard“ für Ihre NAV-Datenbank eingestellt haben, lautet der Name der Anwendungsrolle [$ndo$shadow]. Diese wird für alle Benutzer verwendet.
Und damit haben wir auch die Ursache unseres Problems ermittelt. Anwendungsrollen stellen ein potentielles Sicherheitsrisiko dar, da das Kennwort der Anwendungsrolle im NAV-Client steckt und damit theoretisch von cleveren Schurken ausgespäht werden kann. Der Zugriff auf Systemtabellen des SQL Servers ist daher für Anwendungsrollen verboten bzw. eingeschränkt.
Durch das Setzen von Traceflag 4616 machen Sie die Systemtabellen für Anwendungsrollen zugänglich. Siehe dazu die Dokumentation zum SQL Server unter http://msdn.microsoft.com/de-de/library/ms188396.aspx. Wie Sie das Traceflag als Startoption für den SQL Server setzen, können Sie hier nachlesen: http://msdn.microsoft.com/de-de/library/ms190737.aspx.