comporsys Logo

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öffentlicht Bodo monatlich technische Kabinettstückchen aus der Welt von Dynamics NAV und .NET.

Der NAV-Client zeigt in der Übersicht der aktiven Sessions nur die eigene Session an

Eintrag von Bodo am Freitag, 11. Februar 2011

Tags: , , , , ,

Kennen 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.

 


Dynamics NAV Lizenzen online bestellen Mitglied der Dynamics NAV Community

Microsoft Dynamics NAV community

Live-Support

Sie haben Fragen oder Wünsche?
Wählen Sie 04103 121170 oder chatten Sie mit uns.

Newsletter-Service

Melden Sie sich zu unserem Newsletter an und bleiben Sie auf dem neuesten Stand.