第 2 课:为行级安全性创建属性

新建日期: 2006 年 4 月 14 日

定义行级安全性的一种常用方法是,使用用户的登录信息确定显示哪些行。在本课中,将在“雇员”实体内创建一个基于用户的登录信息筛选数据的特性。您将创建一个筛选器,再将该筛选器编辑为公式,以便您可以使用 GetUserID 函数。

ms365342.note(zh-cn,SQL.90).gif注意:
在开始学习本课前,假定 Business Intelligence Development Studio 在计算机上已打开,而且报表模型显示在窗口中。

创建编辑为公式的已筛选特性

  1. 在树视图中,选择**“雇员”**实体。

    在列表视图中将显示“雇员”的各个特性。

  2. 右键单击**“雇员”,指向“新建”,再单击“筛选器”**。

    此时,将打开“筛选数据”对话框。

  3. 在**“字段”列表中,双击“Login ID2”**。

    使用您在第 1 课中创建的“Login ID2”字段的筛选条件将被添加到筛选器。

  4. 在筛选器中,右键单击**“Login ID2”,再选择“编辑为公式”**。

    将打开“定义公式”对话框,而且显示公式 Login ID2=Empty。

  5. 在**“公式”框中,选择“Empty”**一词。

  6. 选择**“函数”选项卡,再展开“信息”**节点。

  7. 双击**“GetUserID”**函数。

    Empty 将被替换为 GetUserID()

  8. 单击**“确定”**。

    “定义公式”对话框关闭,而且筛选子句显示 Login ID2=GetUserID。

  9. 再单击**“确定”**。

    “筛选数据”对话框关闭,而且 NewFilter 特性显示在列表视图中。接下来,将重命名该特性。

重命名特性

  1. 在列表视图中,右键单击**“NewFilter”属性,再选择“重命名”**。

  2. 键入 UserIDFilter

    接下来,将为该特性分配必需的属性。

修改特性的属性

  1. 在列表视图中,选择**“UserIDFilter”**特性。

  2. 在“属性”窗口中,找到**“IsFilter”**属性。

  3. 验证**“IsFilter”的值是否为“True”**。

  4. 找到**“Hidden”**属性。

  5. 单击**“Hidden”向下键,再选择“True”**。

    Hidden 属性更改为 True 可阻止模型用户在使用模型创建报表时看到此特性。由于您将该特性用作分配安全性的筛选器,因此用户在创建自己的报表时不必查看此特性。

  6. 在列表视图中,选择**“Login ID2”**特性。

  7. 在**“属性”窗口中,找到“Nullable”**属性。

    由于 Login ID2 特性已将 Nullable 属性设置为 True,因此 UserIDFilter 特性也必须将 Nullable 属性设置为 True。但是,这不是用作安全筛选器的必需属性。

  8. 单击**“Nullable”向下键,再选择“True”**。

为安全筛选器集合分配特性

  1. 在树视图中,选择**“雇员”**实体。

  2. 在“属性”窗口中,找到**“SecurityFilters”**属性。

  3. 选择**“SecurityFilters”属性,再单击省略号 (…**) 按钮。

    将打开“属性引用集合编辑器”对话框。

  4. 单击**“添加”**。

  5. 将打开“安全筛选器属性”对话框。

  6. 在**“实体”列表中,验证“雇员”**实体是否处于选中状态。

  7. 在**“字段”列表中,选择“UserIDFilter”**特性。

  8. 单击**“确定”,然后再次单击“确定”**。

    接下来,在模型中保存更改,再将模型重新部署到报表服务器。

保存并部署报表模型

  1. 在**“文件”菜单上,单击“全部保存”**。

  2. 解决方案资源管理器中,右键单击**“Adventure Works Model”,再选择“部署”**。

    模型被部署到报表服务器。

    ms365342.note(zh-cn,SQL.90).gif重要提示:
    若要验证模型是否已成功部署,您可以查看“错误列表”选项卡。如果出现错误,则需要先解决该问题,然后再继续操作。

后续步骤

现在,您已经创建一个特性,并将其分配给 SecurityFilters 集合。接下来,您需要在 SQL Server Management Studio 中启用模型项安全性。请参阅第 3 课:在 Management Studio 中启用行级别安全性

请参阅

其他资源

使用模型设计器
DefaultSecurityFilter 对象(模型设计器)
SecurityFilters 集合
在模型设计器中使用实体
使用角色、源字段和表达式
发布报表模型
GETUSERID(报表生成器)

帮助和信息

获取 SQL Server 2005 帮助