none
SQL Server Reporting Services - Subscriptions RRS feed

  • Frage

  • Bei der Umstellung unseres Berichtswesens von einer eigenen Entwicklung zum MS SSRS musste auch das Mail-Versandsystem 
    mit über 1000 Empfängern für die individuell abonnierten Berichte auf den SSRS übertragen werden. 
    Damit unsere Anwender nicht alle Abonnements nochmal erstellen und parametrieren mussten, sind wir so vorgegangen:
    Ein Administrator hat jedes Berichts-Abonnement einmalig mit den entsprechenden Parametern als Vorlage erstellt. 
    Anschließend wurden die Abonnements mit den PowerShell-Scripten (Get-RsSubscription ...) kopiert und an neue Eigentümer übergeben.

    Die Abonnements werden korrekt zum eingeplanten Zeitpunkt ausgeführt.
    Wenn man sich über die Webseite den Eigentümer eines Abonnements ansieht, steht dort auch der richtige Eigentümer eingetragen.
    Dieser Eigentümer darf aber keine Veränderungen an seinen eigenen Abonnements vornehmen.
    Änderungen sind nur möglich wenn dieser Eigentümer Admin-Rechte erhält.

    Erstellt der Anwender das gleiche Abonnement selbst (ohne Admin-Recht) kann er anschliessend alle Parameter ändern wie er möchte.

    Kurzfassung:
    Administrator (Müller) erstellt Abonnement XXXX
    Administrator (Müller) kopiert Abonnement XXXX -> YYYY
    Administrator (Müller)  setzt neuen Eigentümer (Meier) für Abonnement YYYY

    Neuer Eigentümer (Meier) darf nichts am Abonnement YYYY ändern (obwohl er die Rechte Browser, Berichts-Generator, Herausgeber hat)

    Die Fehlermeldung aus der Datei ReportingServicesService_2020... lautet immer

    library!ReportServer_0-15!1b24!10/30/2020-06:53:38:: e ERROR: Throwing Microsoft.ReportingServices.Diagnostics.Utilities.DeliveryErrorException: , 
    Microsoft.ReportingServices.Diagnostics.Utilities.DeliveryErrorException: A delivery error has occurred. ---> 
    Microsoft.ReportingServices.Diagnostics.Utilities.InvalidExtensionParameter: One of the extension parameters is not valid for the following reason: 
    The account you are using does not have administrator privileges. A subscription cannot be created for hugo.meier@test.com.   

    unabhängig davon ob die Beschreibung, das Renderformat oder sonst irgendetwas geändert werden soll.

    Woran liegt es das der neue Eigentümer (Meier) Administrator-Rechte braucht ?
    Was kann ich tun damit der neue Eigentümer des Abonnements dies ohne Admin-Rechte ändern kann/darf ?

    Zur Info: Es handelt sich um etwa 1500 Abonnements

    Ich bin für jeden Tipp der zur Lösung führt dankbar

    Freundliche Grüße

    Volkmar

    Mittwoch, 11. November 2020 12:39

Alle Antworten

  • Hier gibts einige Hinweise:
    https://www.mssqltips.com/sqlservertip/4069/sql-server-reporting-services-2016-subscription-enhancements/

    https://docs.microsoft.com/en-us/sql/reporting-services/subscriptions/manage-subscription-owners-and-run-subscription-powershell?redirectedfrom=MSDN&view=sql-server-ver15

    Mittwoch, 11. November 2020 13:06
  • Hallo Volkmar,

    schau doch mal nach, ob in der Datenbank auch die Subscriptions wie gewünscht eingetragen sind.

    -- Welche User haben überhaupt Subscriptions?
    select u.Username, s.OwnerID, count(*) as Anzahl_Subscriptions
    from ReportServer.dbo.Subscriptions s 
    inner join ReportServer.dbo.Catalog c
    	on s.Report_OID = c.ItemID
    inner join ReportServer.dbo.users u
    	on s.ownerid = u.userid	
    group by u.Username, s.OwnerID
    order by u.Username;

    Danach kannst Du dann für jeden einzelnen User (bei 1500 würde ich das automatisieren) die Eigentümerschaft ändern. Am besten erst mal mit einem testen.

    DECLARE @OldUserID uniqueidentifier;   
    DECLARE @NewUserID uniqueidentifier;   
    SELECT @OldUserID = UserID FROM dbo.Users WHERE UserName = '<oldDomain>\<OldUser>';   
    SELECT @NewUserID = UserID FROM dbo.Users WHERE UserName = '<newDomain>\<NewUser>';   
    UPDATE dbo.Subscriptions SET OwnerID = @NewUserID WHERE OwnerID = @OldUserID;

    Das ganze natürlich auf eigene Gefahr und erst nach einem vollständigen Backup der Reportserver-Datenbank.

    Aber gucken kann man ja immer ...


    Einen schönen Tag noch, Christoph - http://www.insidesql.org/blogs/cmu

    Dienstag, 17. November 2020 06:59
    Beantworter