Dieser Artikel beschäftigt sich mit der folgenden Frage:
- Ist es möglich, Dataverse als Datenquelle in SSRS zu bekommen?
Um Daten aus Cloud-Azure-Dataverse-Tabellen (Azure SQL-Datenbank) in On-Premise SQL-Server-Reports (SSRS) übertragen zu können, muss Dataverse als zusätzliche Datenquelle zu SSRS hinzugefügt werden.
Dataverse wird in der Azure-Cloud ausgeführt und verwaltet im Azure Active Directory die Benutzer – also die Benutzer, die Zugriff auf Dataverse haben.
SSRS läuft in der On-Premise Welt, auf einem virtualisierten System und unterstützt keine Azure AD MFA Authentifizierung. SSRS unterstützt aber SQL-Authentifizierung und Windows-Authentifizierung.
Azure SQL-Datenbanken unterstützten SQL-Authentifizierung und AAD-Authentifizierung, aber keine Windows-Authentifizierung (Integrated Security). Wenn also versucht wird, mithilfe der Windows-Authentifizierung eine Verbindung zur SQL-Datenbank herzustellen, tritt ein Fehler auf.
- Die Schnittstelle zwischen Azure SQL-Datenbank als Datenquelle und SSRS ist daher die SQL-Authentifizierung.
Für alle, die auf dieses Problem stoßen: Es ist möglich, eine Azure SQL-Datenbank mit SQL-Authentifizierung abzufragen (wenn auch ein SQL-Benutzer hinzufügt werden kann).
Insbesondere wenn Dynamics 365 Dataverse als Datenquelle verwendet wird, kann es aber schwierig sein, dass zur Datenbank ein SQL-Benutzer hinzuzufügt wird.
Die Alternative dafür ist daher die Azure Active Directory-Password Authentifizierungsmethode, die an die SQL Authentifizierung angelehnt ist.
Für die Verwendung von AAD Password Authentifizierung muss beachtet werden, dass entweder MFA auf dem Benutzer deaktiviert ist oder sich der Server, auf dem SSRS (2016+) gehostet wird, sich an einem vertrauenswürdigen Ort befindet (Trusted Location).
Ein Connection String kann z.B. mit dem kostenlosen Tool Power Bi Report Builder generiert werden. Der Connection String sieht dann in etwa so aus:
Data Source=myServer.crm4.dynamics.com,5558;Initial Catalog=myDb;Encrypt=True;TrustServerCertificate=False;Authentication="Active Directory Password"
Die SSRS 2016 Konfiguration würde etwa so aussehen:

Bei der Verbindung kann der folgende Fehler auftreten:

“adalsql.dll” (Authentication=ActiveDirectoryPassword) konnte nicht geladen werden. Fehlercode: 0x2.
Lösung:
- .NET Framework 4.6 + am Server installieren
- Microsoft Active Directory Authentication Library for Microsoft SQL Server installieren (bzw. deinstallieren und erneut installieren)