2012-07-31 83 views
4

這是我的場景:我已經將SSRS 2008 R2與SharePoint 2010集成在一起運行。 一切正常,因爲我可以創建數據源,模型(可以通過工作室或通過「生成模型」選項ECB用於報告庫中的數據源)。我的數據源正在使用一個專用的SQL帳戶和存儲的憑據選項。我的模型專門隱藏了一些列,以便我的報表生成器3.0用戶無法訪問它們(請考慮這些敏感列)。SSRS在SharePoint集成模式和報告模型安全性 - 安全漏洞?

我發現的雖然是而用戶無法編輯我的模型或數據源(他們只有讀取權限),他們可以(從他們有貢獻權限的另一個報表庫)創建一個新的報告模型(來自SharEPoint),並簡單地通過url到我在我的庫中設置的報告數據源。一旦他們這樣做了,他們最終會得到一個模型,它沒有任何我在鎖定模型中設置的隱藏列。這個模型也沒有我已經應用的任何模型項目安全設置 - 這是一個全新的模型,只使用數據源。

所以這裏是我的問題:微軟意味着報告模型項目安全性可以用來防止用戶訪問模型中的某些實體(因此術語「報告模型項目安全性」)。 但是,如果用戶只需使用自己創建的報表庫中的SharePoint UI創建自己的模型,並指向它們必須具有讀取訪問權限的數據源(.rsds文件),那麼這不是一種安全性缺陷?

+3

你給你的用戶直接讀取你的數據庫。他們可以簡單地在Excel中導入整個數據庫。安全漏洞在哪裏?你明確地給了他們這樣做的權利。 – 2012-08-24 18:52:46

回答

1

「我的數據源是使用專用的SQL帳戶」 [...] 「數據源(它們只具有讀取訪問他們」。用戶有讀訪問數據源,這意味着用戶可以用數據源提供的數據做任何他想要的事 - 不管你設置了什麼樣的模型

沒有安全缺陷,但是在你的設計中存在缺陷一旦你使用專門的帳戶訪問外部數據庫,你只需要該賬戶的安全性,你需要使用模擬將用戶的憑證傳遞給數據庫,這樣他才能看到他應該看到的東西,這當然會打開另一個蠕蟲因爲您不希望將所有SharePoint用戶都視爲數據庫用戶。這隻會讓您選擇三:讓數據庫能夠在某種安全查找數據庫中查找用戶,這當然是一個自定義解決方案。

現在你正在使用「默默無聞的安全」方法。您爲用戶提供了一個具有某些「權限」或隱藏列的模型,但底層數據源爲用戶提供了所有數據(甚至隱藏的內容)。什麼阻止用戶使用他們已經讀取訪問的數據源呢?什麼都沒有......