天天看點

對報表模型項應用安全篩選器

“安全登入名”和”安全使用者”的差別:

  1. “安全登入名”是在通過以下方式添加:<伺服器名稱> ——》安全性——》登入名,右鍵選擇“建立登入名”
  2. ”安全使用者”:具體資料庫——》安全性——》使用者,右鍵選擇“建立使用者”,在彈出的“資料庫使用者界面”,使用者名可以随便自定義,登入名則要求是填寫已存在的“安全登入名”
    對報表模型項應用安全篩選器
  3. 報表模型項應用安全篩選器的原理是,在需要啟用安全篩選的表需要一個字段來儲存對應的windows登入帳号,一AdventureWorks資料的Employee表為例。LoginID儲存雇員的windows登入帳号。Reporting Serivce内置getuser()函數提供了取得目前登入使用者的帳号,使用表達式過濾不是目前使用者的資訊,如:LoginID=getuser() ,即可排除目前使用者不該看到的資料。
    對報表模型項應用安全篩選器
    對報表模型項應用安全篩選器
  4. 出了正确的表達式外,還需要進行下列步驟
    1. 将使用getuser() 篩選表達式的(假設名稱是:UserIDFilter)進行如下設定:
      1. UserIDFilter,屬性IsFilter設定為true,
      2. UserIDFilter,屬性Hidden設定為true,該辨別一般不需要然使用者看到。
      3. 選擇UserIDFilter所屬實體,
        1. 選擇 “SecurityFilters” 屬性,再單擊省略号 ( ) 按鈕。将打開 “屬性引用集合編輯器” 對話框。
        2. 單擊 “添加”
        3. 将打開 “安全篩選器屬性”
        4. “字段” 清單中,選擇 “UserIDFilter” 。點選“确定”
    2. 進入報表中心,假設我們使用的報表模型是“Adventure Works”。
      1. 輕按兩下 Adventure Works ,然後單擊 “模型項安全性”
      2. 選中 “單獨保護此模型的各項” 複選框。若要應用模型項安全性,必須選中此複選框
      3. 頂端節點。
      4. “為以下使用者群組(用分号分隔)配置設定讀取權限” 選項。
      5. 鍵入 Everyone “應用”
      6. 現在,整個報表模型對于具有報表模型權限的所有使用者是可見的。
      7. 展開“雇員”實體。 選擇“UserIDFilter”屬性。
      8. 選擇“為以下使用者群組(用分号分隔)配置設定讀取權限”選項。
      9. 若要向 Rachel0 和 Garrett1 授予通路權限,請鍵入 <ComputerName>\Rachel0; <ComputerName>\Garrett1,然後單擊“應用”。
  5. 驗證 Rachel Valdez 的安全設定
    1. 使用報表設計器建立一個很簡單的報表,隻包含Employee實體的一個字段:LoginID,然後儲存此報表“報表1”
    2. 右鍵單擊 Internet Explorer ,再單擊 “運作身份”
    3. “使用者名” 框中,鍵入 <計算機名稱> / Rachel0