Verwenden von Reporting Services-Sicherheitsrichtliniendateien

Reporting Services speichert Richtlinieninformationen zu Komponenten in drei Konfigurationsdateien, die bei der Installation in das Dateisystem kopiert werden. Diese Konfigurationsdateien können eine Kombination aus nur intern verwendeten und benutzerdefinierten Sicherheitsrichtlinien für Codeassemblys in Reporting Services enthalten. Die drei Konfigurationsdateien entsprechen drei sicherungsfähigen Komponenten in Reporting Services: Berichtsserver und Windows-Dienst, Berichts-Manager-Webanwendung und Vorschaufenster des Berichts-Designers.

Hinweis

Es stehen zwei Vorschaumodi für den Berichts-Designer zur Verfügung: die Registerkarte „Vorschau“ und das Popup-Vorschaufenster, das beim Start Ihres Berichtsprojekts im DebugLocal-Modus aufgerufen wird. Die Registerkarte Vorschau ist keine sicherungsfähige Komponente und übernimmt keine Sicherheitsrichtlinieneinstellungen. Im Vorschaufenster sollen die Berichtsserverfunktionen simuliert werden. Es enthält daher eine Richtlinienkonfigurationsdatei, die von Ihnen oder einem Administrator verändert werden muss, um benutzerdefinierte Assemblys und benutzerdefinierte Erweiterungen im Berichts-Designer zu verwenden.

Die Sicherheitsrichtlinien-Konfigurationsdateien enthalten Informationen zu Sicherheitsklassen, einige benannte Standardberechtigungssätze und die Codegruppen für Assemblys in Reporting Services. Die Richtlinien-Konfigurationsdateien von Reporting Services weisen Ähnlichkeiten mit der Security.config-Datei auf, in der die Codegruppenhierarchie und die Berechtigungssätze für Richtlinien auf Computer- und Unternehmensebene in .NET Framework festgelegt werden. Der Speicherort dieser Datei ist C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG\security.config.

Richtliniendateien in Reporting Services

In der nachstehenden Tabelle werden die Richtlinienkonfigurationsdateien in Reporting Services, ihre Speicherorte (bei einer Standardinstallation) und die entsprechenden Funktionen aufgelistet.

Dateiname Speicherort (Standardinstallation) BESCHREIBUNG
rssrvpolicy.config C:\Programme\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportServer Die Berichtsserverrichtlinien-Konfigurationsdatei. Diese Sicherheitsrichtlinien wirken sich vorwiegend auf Berichtsausdrücke und benutzerdefinierte Assemblys aus, nachdem ein Bericht für einen Berichtsserver bereitgestellt wurde. Diese Richtliniendatei beeinflusst auch benutzerdefinierte Daten, Übermittlung, Rendering und Sicherheitserweiterungen, die für den Berichtsserver bereitgestellt wurden.
rsmgrpolicy.config C:\Programme\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportManager Richtlinienkonfigurationsdatei des Berichts-Managers. Diese Sicherheitsrichtlinien wirken sich auf alle Assemblys aus, die eine Erweiterung für den Berichts-Manager darstellen, wie zum Beispiel Abonnementbenutzeroberflächen-Erweiterungen für benutzerdefinierte Übermittlung.
rspreviewpolicy.config C:\Programme\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies Der Berichts-Designer enthält eine eigenständige Vorschaurichtlinien-Konfigurationsdatei. Diese Sicherheitsrichtlinien wirken sich auf Berichtsausdrücke und benutzerdefinierte Assemblys aus, die während der Vorschau und der Entwicklung in Berichten verwendet werden. Diese Richtlinien wirken sich auch auf benutzerdefinierte Erweiterungen aus, die für Berichts-Designer bereitgestellt werden, z. B. Datenverarbeitungserweiterungen.

Ändern von Konfigurationsdateien

Konfigurationseinstellungen werden als XML-Elemente oder -Attribute angegeben. Wenn Sie sich mit XML und Konfigurationsdateien auskennen, können Sie mit einem Text- oder Code-Editor benutzerdefinierbare Einstellungen ändern. Sicherheitskonfigurationsdateien enthalten Informationen zur Codegruppenhierarchie und zu Berechtigungssätzen, die in Reporting Services einer Richtlinienebene zugeordnet sind. Sie sollten das .NET Framework-Konfigurationsprogramm (Mscorcfg.msc) oder das Code Access Security Policy Utility (Caspol.exe) verwenden, um die Sicherheitsrichtlinien zuerst in der Datei "Security.config" zu ändern. Dieser Schritt stellt sicher, dass Richtlinienänderungen gültigen XML-Konfigurationselementen für Richtliniendateien entsprechen. Anschließend können Sie die neuen Codegruppen und Berechtigungsgruppen aus Security.config in die Richtliniendatei für die Komponente ausschneiden und einfügen, der Sie Codeberechtigungen hinzufügen.

Wichtig

Erstellen Sie vor der Durchführung von Änderungen eine Sicherungskopie Ihrer Richtlinienkonfigurationsdateien.

Mit diesem Ansatz können Sie zwei Ziele verfolgen. Erstens: Sie können ein visuelles Tool zur Erstellung Ihrer Codegruppen und Berechtigungssätze für Reporting Services verwenden. Diese Methode ist einfacher als das Schreiben von XML-Konfigurationselementen von Grund auf. Zweitens wird sichergestellt, dass Sie die Konfigurationsdateien für Sicherheitsrichtlinien nicht mit falsch formatierten XML-Elementen und -Attributen beschädigt haben. Weitere Informationen über das Code Access Security Policy Utility entnehmen Sie dem Artikel zur Verwendung von Reporting Services-Sicherheitsrichtliniendateien auf MSDN.

Bevor Sie Richtlinienkonfigurationsdateien ändern, sollten Sie alle informationen lesen, die in diesem Abschnitt und verwandten Artikeln verfügbar sind. Das Ändern der Richtlinienkonfiguration von Reporting Services kann erhebliche Sicherheitswirkungen darauf haben, wie Reporting Services-Komponenten externe Codemodule ausführen.

Platzierung von CodeGroup-Elementen für Erweiterungen

Die Platzierung von CodeGroup-Elementen in einer Sicherheitsrichtliniendatei ist wichtig. Für Erweiterungen und benutzerdefinierte Assemblys, die Sie entwickeln, sollten Sie Ihre benutzerdefinierten Codegruppen direkt unter dem vorhandenen Eintrag für die URL-Mitgliedschaft $CodeGen$/*platzieren, wie im folgenden Beispiel angegeben:

<CodeGroup  
    class="UnionCodeGroup"  
    version="1"  
    PermissionSetName="FullTrust">  
    <IMembershipCondition   
        class="UrlMembershipCondition"  
        version="1"  
        Url="$CodeGen$/*"  
    />  
</CodeGroup>  
<CodeGroup   
    class="UnionCodeGroup"  
    version="1"  
    PermissionSetName="FullTrust"  
    Name="MyCustomCodeGroup"  
    Description="Code group for my custom extension">  
        <IMembershipCondition class="UrlMembershipCondition"  
        version="1"  
        Url="C:\Program Files\Microsoft SQL Server\MSSQL\Reporting Services\ReportServer\bin\MyAssembly.dll"  
        />  
</CodeGroup>  

Weitere Codegruppen können nacheinander hinzugefügt werden.