我正在爲SSRS 2008報告開發存儲過程,但我想根據運行報告的用戶的角色來限制數據輸出。我該怎麼做呢?我想要做的是檢索Windows用戶名並基於此過濾記錄,但用戶使用「sa」帳戶登錄到服務器。所以現在我想我應該使用AD登錄。如何在T-SQL中實現基於角色的安全性?
我也看到了如何在SSRS中設置安全性,而不是T-SQL sproc,以便用戶可以訪問相應的文件夾。但是,第二種方法聽起來更麻煩,因爲我們有許多不同的報告,並且我希望用戶可以訪問所有報告,但只能訪問數據的不同部分。
通過報告服務器上的SSRS組和文件夾實現安全性,還是通過T-SQL sproc實現安全性更好?
我查看了「(= User.UserID)」解決方案的鏈接,但是在實現時遇到了問題。我做了什麼:我創建了SSRS的數據集選擇的文本查詢:
select people_id from people_rv where last_name like 'd%'
這返回的people_id的
一個名單,然後,我創建了一個新的參數,將其設置爲可用上述數據集值。我使它成爲文本數據類型並允許空值和空值。沒有默認值。最後,我設置可見的表矩陣:
=iif(Parameters!staff_id.Value in (select people_id from users),1,0)
但是,這會產生錯誤。我怎樣才能重新表達這個tablix表達?
作爲參考:在NO條件應SA密碼是分佈式的或由應用程序使用。這是由於一個原因:由數據庫管理員訪問。即使這樣,我會勸說不要以任何理由使用它。 SA是一個衆所周知的用戶名,是基於字典攻擊的常見目標。在應用程序中進一步使用它表示相關應用程序對數據庫服務器本身具有絕對的全面控制權:這是不好的。 – NotMe 2012-02-06 21:07:54