教學課程:將安全性篩選套用到報表模型項目
在 SQL Server Reporting Services 中,模型項目安全性讓您可以對群組或使用者授與存取權。如果您的資料庫包含銷售訂單資訊,那麼除非套用模型項目安全性,否則任何一個有模型權限的使用者都可以檢視這筆銷售訂單資料。模型項目安全性讓您可以選擇性地將模型中的項目公開給其他使用者或群組。一般說來,這種安全性與資料庫中的資料表和資料行安全性類似。模型項目安全性的啟用與設定是透過報表管理員來進行。
若要套用模型項目安全性,您必須將模型部署到報表伺服器,然後在報表管理員的 [安全性] 頁面上,套用模型內實體和欄位的安全性。您也可以使用資料列層級安全性來保護模型所傳回的資料。例如,您可以限定銷售員只能查看自己的銷售訂單。為了套用資料列層級安全性,您必須至少建立一個可當做篩選用以限制資料的屬性 (Attribute),然後將其指派給 SecurityFilters 集合 屬性 (Property) 或 DefaultSecurityFilter 物件屬性 (Property)。這個屬性 (Attribute) 必須是布林,而且 IsFilter 屬性 (Property) 必須設定為 True。或者,如果屬性 (Attribute) 不如報表欄位好用,您可以將 Hidden 屬性 (Property) 設為 True。
當您基於資料列層級安全性而至少使用一個屬性 (Attribute) 後,預設就會隨即隱藏所有的資料列。依據安全性篩選,使用者才會取得資料列的存取權。每一個加到 SecurityFilters 集合的屬性會成為授與資料列存取權的機制,但只限該篩選所公開的資料列。如果安全性篩選存在的話,那麼除非定義預設安全性篩選,否則沒有這些篩選權限的使用者或群組將無法看到任何資料列。若有定義,則只會看到預設安全性篩選公開的資料列。
[!附註]
根據預設,管理員對整個模型沒有存取權。管理員必須已獲授與權限才能存取整個模型,就如同任何其他使用者或群組一樣。
在本教學課程中,您將學會如何使用 SecurityFilters 集合,將資料列層級安全性套用到 AdventureWorks2008R2 報表模型內的實體,然後在報表管理員中套用必要的安全性設定。
重要事項 |
---|
您必須先下載並安裝 SQL Server 範例和範例資料庫,才可以檢視或使用它們。如需詳細資訊,請參閱<安裝 SQL Server 範例和範例資料庫的考量>。 |
需求
若要使用這個教學課程,系統上必須已安裝下列元件:
以原生模式執行的 Microsoft SQL Server Reporting Services。SQL Server Express 不支援模型。如需詳細資訊,請參閱<SQL Server 2008 R2 版本支援的功能>,包括:
Microsoft SQL Server.
Microsoft SQL Server Business Intelligence Development Studio.
含 AdventureWorks2008R2 資料庫的 Microsoft SQL Server。
含有 Adventure Works 報表模型範例的 Microsoft SQL Server。
執行報表產生器之系統上的 Microsoft .NET Framework 2.0。
您必須具有下列權限:
若要部署和發行報表模型,則必須將您指派給「內容管理員」或「發行者」角色。
從 AdventureWorks2008R2 資料庫擷取資料的權限。
另外,請確認執行報表伺服器的電腦是使用具備整合式安全性的 Internet Information Services (IIS)。