我爲公司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)
這是一個從來自兩個公司的表與工會選擇所有的視圖選擇。 – jrummell 2009-10-08 20:06:51
如果我們將聯合視圖拆分爲兩個單獨的視圖,那麼我們可能會使用數據庫角色僅在適當的公司視圖上授予select。這就是你所指的? – jrummell 2009-10-08 20:13:23
是的,這應該創建一個獲取適當數據的透明方法。 – keithwarren7 2009-10-08 20:38:03