Timeout bei Erweiterter Suche mit anderen Sicherheitsrollen

9. Oktober 2020 11:58

Guten Tag,

ich bin am Verzweifeln mit einem Problem, an dem ich nun schon sehr lange Zeit suche und hoffe, hier kann mir jemand den entscheidenden Hinweis geben oder mich zumindest in die richtige Richtung schicken.

Die Situation ist folgende:
Es gibt eine Reihe von erweiterten Suchen, die benutzt werden, um Marketinglisten zu füllen. Diese sind teilweise recht komplex. Verschiedene Mitarbeiter melden sich immer wieder, sie könnten keine Ergebnisse bekommen, sondern erhielten statt dessen den Fehler SQL Server-Timeout abgelaufen. Führe ich diese Abfragen aus, so erhalte ich in kurzer Zeit (teilweise in ca. 10 Sekunden) die Ergebnisse. Das ganze lässt sich dann auch reproduzieren. Die Anwender können Glück haben und sie bekommen ihre Ergebnisse. Sie können aber auch das Timeout erhalten und das mitunter über mehrere Stunden.

Was bisher geschah:
- Ein Dienstleister hat Timeout-Werte erhöht. Ohne Erfolg. Der Vertrag mit dem Dienstleister ist leider beendet, so dass ich von dort keine Hilfe mehr erhalte.
- Wir haben die Abfragen vereinfacht. Abgesehen davon, dass wir dann aber nicht die erwarteten Ergebnisse erhalten, brachte es auch nicht viel. Es ging mal gut. Und mal gab es wieder den Timeout. Das Verhalten gab es aber auch mit den eigentlichen Abfragen, so dass ich nicht einmal sagen kann, ob es etwas brachte.
- Nach meinem Verständnis löse ich eine Erweiterte Suche im Browser aus. Die Anfrage geht an den CRM-Server, der sie an den SQL-Server stellt. Dort wird sie verarbeitet und die Ergebnisse kommen zurück an den CRM-Server. Diese werden evtl. noch etwas aufbereitet und dann an den Browser zurück gegeben. Das Timeout passiert während der Anfrage vom CRM-Server zum SQL-Server und damit sind unterschiedliche Arbeitsumgebungen beim Nutzer nicht von Bedeutung. Entweder gibt es ein generelles Problem zwischen den Servern, das ich dann aber auch haben müsste, oder es ist etwas spezifisches beim Nutzer. Auch wenn die Umgebung es wohl nicht sein könnte, haben wir auch hier gesucht.
- Ein Benutzer hat die Abfrage von unterschiedlichen Geräten aus probiert. Es klappte bei ihm nicht. Ich habe es von unterschiedlichen Geräten aus versucht. Ich hatte keine Probleme.
- Ich habe es mit unterschiedlichen Browsern auf den unterschiedlichen Geräten probiert. Ohne Probleme.
- Ich habe neben einem Benutzer gesessen und wir haben die selbe Abfrage gleichzeitig durchgeführt. Ich hatte nach 10 bis 20 Sekunden ein Ergebnis und er erhielt den Timeout. Das konnten wir mehrmals nacheinander wiederholen.
- Ich habe es kabelgebunden im Firmennetz probiert, aber auch im WLAN und über VPN aus dem Homeoffice. Dort arbeiten ja derzeit nahezu alle Anwender. Es machte keinen Unterschied.
- Nachdem ich die Arbeitsumgebung nicht nur theoretisch sondern auch durch Experimente ausgeschlossen hatte, habe ich eigentlich nur noch eine Stelle gesehen, an der es einen Unterschied zwischen mir und den Nutzern gibt. Das sind die Sicherheitsrollen. Ich habe neben einigen selbst definierten Sicherheitsrollen, die auch die Anwender haben, zusätzlich die Rolle Systemadministrator. Eine Kollegin, die auch Systemadministrator hat und ebenso keine Probleme erlebt, hat mit mir ein paar Tests gemacht. Darin hat sie mir exakt die selben Rollen erteilt, welche auch die Anwender haben - also auch die Rolle Systemadministrator entfernt. Später hat sie mir die Rolle wieder gegeben. Das haben wir mehrfach probiert. Jedesmal wenn ich die Rolle hatte, gab es keinerlei Probleme. Hatte ich sie aber nicht, so erhielt ich ebenfalls die Timeouts bzw. musste ungewohnt lange warten.

Auch wenn ich es mir nicht erklären kann, so wirkt es doch so, als wenn das Problem mit der Rolle zu tun hat. Allen Nutzern nun die Sicherheitsrolle Systemadministrator zu geben könnte eine Lösung sein. Sie ist für mich aber nicht sinnvoll und vertretbar. In den bestehenden Rollen nach einer vielleicht fehlenden Berechtigung zu suchen, haben wir bereits getan. Auf die verwendeten Entitäten besteht teilweise sogar Vollzugriff. Wir haben nur eine Unternehmenseinheit, so dass nur keine Berechtigung oder auf Benutzerebene in Frage kämen, wenn es zu wenig Berechtigungen sein sollten. Das ist aber nirgendwo eingestellt. Die Einstellungen sind höher. Eine fehlende Berechtigung für den Zugriff auf eine Entität (selbst dann wenn ich sie nur noch nicht gefunden habe) fände ich zwar logisch, aber dann dürften die Anwender ja niemals Ergebnisse bekommen.

- Kennt jemand das schon?
- Kann jemand den Eindruck bestätigen, dass mit der Sicherheitsrolle Systemadminstrator auch so etwas wie eine Priorität in der Abfrage bzw. eine garantierte bessere Performance einhergeht? Hat jemand eine Erklärung dafür oder eine Lösungsidee?
- Hat jemand einen Hinweis oder eine Idee, was ich noch untersuchen könnte, um diesem ungewöhnlichen Problem näher zu kommen?

Hier noch die Umgebungsbeschreibung:
- Dynamics 365 - Version 1612 (8.2.1.176) On Premise
- SQL-Server 2016
- beide auf Windows Server 2012 R2


Jede hilfreiche Antwort ist von Herzen willkommen.
Gruß. V.S.