对报表模型项应用安全筛选器

“安全登录名”和”安全用户”的区别:

  1. “安全登录名”是在通过以下方式添加:<服务器名称> ——》安全性——》登录名,右键选择“新建登录名”
  2. ”安全用户”:具体数据库——》安全性——》用户,右键选择“新建用户”,在弹出的“数据库用户界面”,用户名可以随便自定义,登录名则要求是填写已存在的“安全登录名”
    image
  3. 报表模型项应用安全筛选器的原理是,在需要启用安全筛选的表需要一个字段来保存对应的windows登录帐号,一AdventureWorks数据的Employee表为例。LoginID保存雇员的windows登录帐号。Reporting Serivce内置getuser()函数提供了取得当前登录用户的帐号,使用表达式过滤不是当前用户的信息,如:LoginID=getuser() ,即可排除当前用户不该看到的数据。
    image
    image
  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. 选择 Adventure Works 顶端节点。

      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
    4. “密码”框中,键入 Pass12,Word

    5. 单击“确定”

    6. 打开“报表1”,将只看到一行数据,只看到Rachel0自己的数据。
      image

原文地址:https://www.cnblogs.com/timy/p/1621042.html