Использование файлов политик безопасности служб Reporting Services

Службы Reporting Services хранят сведения о политике безопасности компонентов в реестре и файлах конфигурации, которые копируются в файловую систему при установке. В этих файлах конфигурации хранится сочетание внутренней и пользовательской политики безопасности для сборок программного кода в службах Reporting Services. Три файла конфигурации соответствуют трем защищаемым компонентам служб Reporting Services: сервер отчетов и служба Windows, веб-приложение диспетчер отчетов и окно предварительного просмотра конструктора отчетов.

Примечание.

Для конструктора отчетов предусмотрено два режима предварительного просмотра: вкладка предварительного просмотра и всплывающее окно предварительного просмотра, которое вызывается при запуске проекта отчета в режиме DebugLocal. Вкладка Просмотр не является защищаемым компонентом, к ней не применяются параметры политики безопасности. Окно предварительного просмотра предназначено для имитации функциональной возможности сервера отчетов и поэтому имеет файл конфигурации политики безопасности, который необходимо изменить, если используются пользовательские сборки или пользовательские модули в конструкторе отчетов.

Файлы конфигурации политики безопасности содержат сведения класса безопасности, некоторые именованные наборы разрешений по умолчанию и группы программного кода для сборки в службах Reporting Services. Файлы конфигурации политики безопасности служб Reporting Services напоминают файл Security.config, который определяет иерархию группы кода и наборы разрешений, связанные с политиками на уровне компьютера и предприятия в .NET Framework. Этот файл находится в C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG\security.config.

Файлы политик в службах Reporting Services

В следующей таблице приводится список файлов конфигурации в службах Reporting Services, их расположение (предполагается установка по умолчанию) и соответствующие функции.

Имя файла Расположение (установка по умолчанию) Description
rssrvpolicy.config C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportServer Файл конфигурации политики безопасности сервера отчетов. Эти политики безопасности в первую очередь касаются выражений отчетов и пользовательских сборок после развертывания отчета на сервере отчетов. Этот файл также влияет на пользовательские данные, доставку, модули подготовки отчета и безопасности, развернутые на сервере отчетов.
rsmgrpolicy.config C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportManager Файл конфигурации политики диспетчера отчетов. Эти политики безопасности касаются всех сборок, расширяющих функции диспетчера отчетов, например расширения подписки для пользовательских модулей доставки.
rspreviewpolicy.config C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies Файл конфигурации политики изолированного предварительного просмотра для конструктора отчетов. Эти политики безопасности касаются пользовательских сборок и выражений отчета, которые используются в отчете во время предварительного просмотра и разработки. Эти политики также влияют на пользовательские расширения, развернутые в конструктор отчетов, например модули обработки данных.

Изменение файлов конфигурации

Параметры конфигурации задаются либо как элементы XML, либо как атрибуты. Если вы знакомы с XML и файлами конфигурации, то можете использовать редактор текста или кода для настройки пользовательских параметров. Файлы конфигурации политики безопасности содержат сведения о иерархии группы программных кодов и набора разрешений, связанных с уровнем политики в службах Reporting Services. Сначала следует использовать программу настройки платформа .NET Framework (Mscorcfg.msc) или программу политики безопасности доступа к коду (Caspol.exe), чтобы сначала изменить политики безопасности в файле security.config. Этот шаг гарантирует, что изменения политики соответствуют допустимым элементам конфигурации XML для файлов политики. После этого вы можете вырезать и вставить новые группы кода и наборы разрешений из Security.config в файл политики для компонента, в который вы добавляете разрешения кода.

Важно!

До внесения изменений необходимо создать резервные копии файлов конфигурации политик.

При таком подходе достигается следующее. Во-первых, это дает возможность использовать визуальные средства при создании групп кодов и наборов разрешений для служб Reporting Services. Этот метод проще, чем написание элементов конфигурации XML с нуля. Во-вторых, это гарантирует, что файлы конфигурации политики безопасности не повреждены с неправильно сформированными XML-элементами и атрибутами. Дополнительные сведения о программе политики управления доступом для кода см. в MSDN, раздел «Использование файлов политики безопасности служб Reporting Services».

Перед изменением файлов конфигурации политики необходимо прочитать все сведения, доступные в этом разделе и связанных статьях. Изменение конфигурации политики служб Reporting Services может иметь значительное влияние на то, как компоненты Служб Reporting Services выполняют внешние модули кода.

Размещение элементов CodeGroup для расширений

Размещение элементов CodeGroup в файле политики безопасности имеет большое значение. Для расширений и пользовательских сборок, которые вы разрабатываете, следует разместить группы пользовательских кодов непосредственно под существующей записью для членства $CodeGen$/*ПО URL-адреса, как показано в следующем примере:

<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>  

Другие группы кода можно добавлять друг за другом.