对报表模型项应用安全筛选器
“安全登录名”和”安全用户”的区别:
- “安全登录名”是在通过以下方式添加:<服务器名称> ——》安全性——》登录名,右键选择“新建登录名”
- ”安全用户”:具体数据库——》安全性——》用户,右键选择“新建用户”,在弹出的“数据库用户界面”,用户名可以随便自定义,登录名则要求是填写已存在的“安全登录名”
- 报表模型项应用安全筛选器的原理是,在需要启用安全筛选的表需要一个字段来保存对应的windows登录帐号,一AdventureWorks数据的Employee表为例。LoginID保存雇员的windows登录帐号。Reporting Serivce内置getuser()函数提供了取得当前登录用户的帐号,使用表达式过滤不是当前用户的信息,如:LoginID=getuser() ,即可排除当前用户不该看到的数据。
- 出了正确的表达式外,还需要进行下列步骤
- 将使用getuser() 筛选表达式的(假设名称是:UserIDFilter)进行如下设置:
- UserIDFilter,属性IsFilter设置为true,
- UserIDFilter,属性Hidden设置为true,该标识一般不需要然用户看到。
- 选择UserIDFilter所属实体,
- 选择“SecurityFilters”属性,再单击省略号 (…) 按钮。将打开“属性引用集合编辑器”对话框。
- 单击“添加”。
- 将打开“安全筛选器属性”对话框。
-
在“字段”列表中,选择“UserIDFilter”。点击“确定”
-
进入报表中心,假设我们使用的报表模型是“Adventure Works”。
- 双击 Adventure Works,然后单击“模型项安全性”。
-
选中“单独保护此模型的各项”复选框。若要应用模型项安全性,必须选中此复选框
-
选择 Adventure Works 顶端节点。
-
选择“为以下用户和组(用分号分隔)分配读取权限”选项。
-
键入 Everyone,然后单击“应用”。
-
现在,整个报表模型对于具有报表模型权限的所有用户是可见的。
-
展开“雇员”实体。 选择“UserIDFilter”属性。
-
选择“为以下用户和组(用分号分隔)分配读取权限”选项。
-
若要向 Rachel0 和 Garrett1 授予访问权限,请键入 <ComputerName>\Rachel0; <ComputerName>\Garrett1,然后单击“应用”。
-
验证 Rachel Valdez 的安全设置