0

我爲公司A公司工作有一個姊妹公司B.這兩家公司A和B使用相同的ERP數據庫。我創建了可供兩家公司使用的SSRS 2005報告。它有決定是否顯示公司A或B公司SSRS 2005基於參數的安全

數據對於大多數報表,這將是OK了CompanyID參數,但對於公司的敏感信息(如工資),這將是自公司在任何人的問題A可以將CompanyID參數更改爲公司B的ID,反之亦然。

我最初的想法是爲每個公司在其各自的文件夾A和B中創建一個linked repor t,其中文件夾A的安全性只允許公司A用戶和文件夾B安全性只允許B用戶使用。然後,我會爲每個鏈接的報告添加默認的CompanyID參數,並隱藏用戶的參數。到現在爲止還挺好。問題在於,您仍然可以使用URL查詢字符串更改參數值。例如,在公司A的用戶可能會改變從報告網址:

http://server/ReportServer/ReportViewer.aspx?/Payroll/一個 & RS:命令=渲染

到:

http://server/ReportServer/ReportViewer.aspx?/Payroll/一個 & RS:命令=渲染& CompanyID =

現在他們已經完全繞過隱藏DEFA超參數。

什麼是解決這個問題的好辦法?如果可能,我想分享兩家公司之間的報告。

更新: 我們也有具體的公司已經通過限制AD域基於公司訪問ASP.NET內部網。我想我可以使用內部網頁上的ReportViewer控件在運行時應用適當的參數。我可以將這個邏輯合併到一個可用於任何報告的通用報告頁面中,對嗎? (請原諒我的無知,我是一個總的SSRS的n00b)

回答

1

什麼是您的安全設備,在這裏?在我看來,一個可靠而安全的解決方案將是根據用戶帳戶驅動對數據的訪問。報告數據如何收集?它是否直接在你的數據集中選擇?你打電話過程嗎?選擇一個視圖?

編輯:由於您選擇的視圖是聯合各自的公司數據,如果您授予權限的用戶或有權訪問的角色的視圖,您可能能夠創建一個場景數據返回到用戶基於他們的權利。

+0

這是一個從來自兩個公司的表與工會選擇所有的視圖選擇。 – jrummell 2009-10-08 20:06:51

+0

如果我們將聯合視圖拆分爲兩個單獨的視圖,那麼我們可能會使用數據庫角色僅在適當的公司視圖上授予select。這就是你所指的? – jrummell 2009-10-08 20:13:23

+0

是的,這應該創建一個獲取適當數據的透明方法。 – keithwarren7 2009-10-08 20:38:03

0

您可以使用Expression Based Connection Strings爲了不必使用鏈接的報告,但它仍然意味着將信息作爲參數傳遞,這些參數將暴露在GET請求中。

有沒有得到身邊,你必須區分對他們來說,該報告將顯示/運行。