11. März 2015 08:20
Guten Morgen Leute,
ich habe ein Berechtigungs-Problem mit der Tabelle "Session" in einer SQL-Umgebung.
Es geht um eine Dynamics NAV 2009 Umgebung, letzte Build No., nur Classic Client, welche neu auf SQL 2012 läuft.
Mit der native Datenbank konnte man unter Datei->Datenbank->Information die Anzahl aktiven Sessions sehen.
Wenn man SUPER Rechte hatte, konnte man auch Sessions löschen / beenden.
Nach der Umstellung von der native Datenbank auf die SQL-Datenbank funktionierte dies aber nicht mehr.
Auch der verantwortliche Benutzer (mit SUPER Rechten) sah nur seine eigene Session und nicht alle aktiven Sessions.
Da dieser Benutzer auch Sessions "killen" darf, gab ich ihm auf dem SQL-Server die "Sysadmin" Rechte. Damit konnte
er nun wieder alle Sessions sehen und bei Bedarf auch einzelne "killen".
Das Problem ist aber, dass wir in ein paar Objekten auf die Tabelle Session zugreifen. Dabei wird geprüft ob noch andere Sessions aktiv sind.
Dies funktioniert nun aber nur beim oben erwähnten administrativen Benutzer mit "Sysadmin" Rechten.
Bei allen anderen Benutzern wird natürlich immer nur die eigene Session im Zugriff sein.
Es wäre nun natürlich einfach aber sträflich, allen Benutzern "Sysadmin" Rechte zuzuteilen...
Nach langem Suchen habe ich Folgendes gefunden:
Der NAV-Client zeigt in der Übersicht der aktiven Sessions nur die eigene Session anhttp://www.comporsys.de/dynamics-nav-blog/der-nav-client-zeigt-in-der-uebersicht-der-aktiven-sessions-nur-die-eigene-session-an/Mit der Ausführung von "DBCC TRACEON(4616,-1)" löst dies zwar das Problem.
Aber erstens müsste ich das Aktivieren des Trace im Startup des SQL-Servers hinzufügen, da es bei einem Neustart wieder deaktiviert ist.
Und zweitens weiss ich nicht, ob es nicht noch eine viel bessere Lösung gibt?
Habt ihr mir da einen Tipp?
Vielen Dank, Beno
Zuletzt geändert von beno am 11. März 2015 17:50, insgesamt 1-mal geändert.