共用方式為


使用 Reporting Services 安全策略檔案

Reporting Services 會將元件安全策略資訊儲存在安裝期間複製到文件系統的三個組態檔中。 這些組態檔可以包含 Reporting Services 中程式代碼元件的內部使用和使用者定義安全策略組合。 這三個組態檔會對應至 Reporting Services 中的三個安全性實體元件:報表伺服器和 Windows 服務、報表管理員 Web 應用程式和報表設計師預覽視窗。

備註

報表設計師有兩種預覽模式:當您的報表專案以 DebugLocal 模式啟動時,會啟動預覽索引標籤和彈出視窗。 [ 預覽 ] 索引標籤不是安全性實體元件,而且不會套用安全策略設定。 預覽視窗的目的是要模擬報表伺服器功能,因此您或系統管理員必須修改的原則配置檔,才能在報表設計師中使用自定義元件和自定義延伸模組。

安全策略組態檔包含安全性類別資訊、某些預設具名許可權集合,以及 Reporting Services 中元件的程式代碼群組。 Reporting Services 的原則組態檔類似於 Security.config 檔案,可決定 .NET Framework 中計算機和企業層級原則相關聯的程式代碼群組階層和許可權集合。 此檔案的位置 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG\security.config。

Reporting Services 中的原則檔案

下表列出 Reporting Services 中的原則組態檔、其位置(假設預設安裝),以及其各自的功能。

檔案名稱 位置(預設安裝) 說明
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 元素很重要。 針對您開發的延伸模組和自定義元件,建議您將自定義程式代碼群組放在 URL 成員資格 「$CodeGen$/*」 的現有專案下方,如下所示:

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

您可以逐一新增其他程式代碼群組。

另請參閱

瞭解安全策略