Schlagwort: SQL Server

  • Tausende Logmeldungen im Application Log eines ADFS Servers Event ID 28005: Error: 15517, State: 1. Cannot execute as the database principal because the principal „dbo“ does not exist

    Im Rahmen der Administration eines Active Directory Federation Service (ADFS) Servers stießen wir auf ein Problem: Tausende von Fehlermeldungen im Eventlog des Servers, die keinen direkten Einfluss auf die Funktionalität hatten, aber dennoch störend waren und die Übersicht im Log massiv beeinträchtigten. In diesem Blogartikel möchten wir die Ursache und Lösung des Problems im Detail erläutern.

    Problem: Massenhaft Fehler im Application Log

    Im Application Log eines ADFS-Servers fanden sich über 170.000 Fehlermeldungen innerhalb von 24 Stunden, was zu einer durchschnittlichen Rate von fast zwei Logeinträgen pro Sekunde führte. Der Logeintrag hatte die folgende Fehlermeldung:

    An exception occurred while enqueueing a message in the target queue. Error: 15517, State: 1. Cannot execute as the database principal because the principal "dbo" does not exist, this type of principal cannot be impersonated, or you do not have permission.
    

    Obwohl diese Fehler keinen direkten Einfluss auf die Funktionalität des ADFS-Servers hatten, waren sie störend und erschwerten das Monitoring und die Diagnose anderer potenzieller Probleme.

    Ursache: Datenbank-Fehlkonfiguration

    Nach einer eingehenden Untersuchung und einer Internetrecherche zeigte sich, dass das Problem durch eine Fehlkonfiguration in der Windows Internal Database (WID) verursacht wurde, die ADFS verwendet. Genauer gesagt war der Datenbankbesitzer („DBO“, Database Owner) der relevanten ADFS-Datenbanken nicht korrekt gesetzt. Der Fehler „Cannot execute as the database principal because the principal ‚dbo‘ does not exist“ deutete darauf hin, dass der Datenbankbesitzer in den betroffenen ADFS-Datenbanken NULL war.

    Lösung: Anpassen des DBOwners der ADFS-Datenbanken

    Um das Problem zu beheben, haben wir die folgenden Schritte durchgeführt:

    1. Installation von SQL Server Management Studio (SSMS)
      Um die Konfiguration der WID-Datenbanken zu ändern, ist es notwendig, das SQL Server Management Studio (SSMS) zu verwenden.
    2. Verbindung zur Windows Internal Database (WID)
      Als Nächstes haben wir uns mit der WID-Instanz auf dem ADFS-Server verbunden. Dies geschieht mit folgendem Verbindungsstring:
    np:\\.\pipe\MICROSOFT##WID\tsql\query

    Wichtiger Hinweis: SSMS muss als Administrator gestartet werden, da die Verbindung zur WID-Instanz sonst fehlschlägt.

    Ändern des Datenbankbesitzers (DBOwner) für die ADFS-Datenbanken
    In der WID-Instanz haben wir dann den Datenbankbesitzer für die beiden ADFS-Datenbanken „AdfsConfigurationV4“ und „AdfsArtifactStore“ geändert. Dies geschah mit den folgenden SQL-Befehlen:

    use [AdfsConfigurationV4]
    EXEC sp_changedbowner 'sa'
    
    use [AdfsArtifactStore]
    EXEC sp_changedbowner 'sa'

    Vor dieser Änderung war der Besitzer der beiden Datenbanken auf NULL gesetzt, was die Fehlermeldungen verursachte.

      Ergebnis: Keine weiteren Fehlermeldungen

      Nach der erfolgreichen Änderung des DBOwners in der WID-Instanz wurden die störenden Logeinträge im Application Log vollständig beseitigt. Der ADFS-Server lief weiterhin ohne Probleme, und die Änderung hatte keinerlei negative Auswirkungen auf die Funktionalität des Servers.

      Hilfreichen Artikeln:

    1. Fehler bei der MS SQL Server 2022 Installation: „The RPC Server is unavailable“

      Die Installation von SQL Server 2022 kann in Umgebungen mit komplexen Netzwerkkonfigurationen zu Herausforderungen führen. Bei einer Installation ist beim Konfigurieren der Kontoinformationen für den SQL Server und den SQL Agent Dienst der Fehler „The RPC Server is unavailable“ und „The SQL Server service account login or password is not valid„, aufgetreten. Dieser Beitrag erklärt, wie dieses Problem in unserem spezifischen Szenario gelöst wurde.

      Problemstellung

      Während der Installation des SQL Server 2022 tritt beim Übergang zum nächsten Schritt des Installationsassistenten, in dem die Dienstkontoinformationen für den SQL Server und den SQL Agent konfiguriert werden, ein Fehler auf. Die Fehlermeldungen lauten „The RPC Server is unavailable“ und „The SQL Server service account login or password is not valid„. Obwohl die zweite Meldung suggeriert, dass Benutzername oder Passwort des Dienstkontos nicht korrekt seien, ist dies tatsächlich irreführend, da die Credentials korrekt sind.

      Ursache des Problems

      Die Ursache für den Fehler liegt in der Netzwerkkonfiguration, speziell im Zusammenhang mit der DNS-Konfiguration. In unserem Fall verwendet das Active Directory einen sogenannten Disjoined Namespace, bei dem die Member-Server einen vom AD-Namen unterschiedlichen DNS-Suffix haben. Der SQL Server Installer versucht offenbar, die Domäne nicht mit einem vollqualifizierten Domänennamen (FQDN) zu erreichen, sondern nur mit einem Hostnamen. Das Anhängen des DNS-Suffix des lokalen SQL Servers scheitert daher aufgrund des Disjoined Namespace.

      Lösung des Problems

      Eine erfolgreiche Lösung wurde nach eingehender Recherche auf der Webseite https://deibymarcos.wordpress.com/2016/04/06/sql-server-set-up-error-the-rpc-server-is-unavailable/ gefunden. Der entscheidende Tipp war, dass die DNS-Suffix-Liste vollständig konfiguriert sein muss.

      Um das Problem zu beheben, wurden die folgenden Schritte durchgeführt:

      1. Überprüfung der DNS-Einstellungen auf dem Server, auf dem SQL Server 2022 installiert werden soll.
      2. Hinzufügen des DNS-Suffix der Active Directory-Domäne zu den DNS-Einstellungen des Servers.
      3. Neustart des Installationsvorgangs für den SQL Server 2022.

      Nach der Konfiguration der DNS Search Suffixe verlief der MS SQL Installationsprozess ohne weitere Probleme.