上一页|下一页

行级安全性

简介

行级安全性允许您控制哪些用户可以访问 LASR 表内的特定行,它由数据过滤表达式定义。行级访问区别可基于某个简单属性(如安全检查级别)或基于由多个条件构成的复杂表达式。
行级安全性影响对资源内数据子集的访问。为了建立行级安全性,您添加了称为“权限条件”的约束来显式授予“读取”权限。每个权限条件为特定用户或组过滤特定的 LASR 表。每个权限条件限制显式授予“读取”权限,因此相关的用户或组只能看到满足特定条件的那些行。
使用行级安全性时,对于查看数据的用户请求有三种可能的授权决策结果:
“授予”图标授予
发出请求的用户可以看到所有行。
“依条件授予”图标 依条件授予
发出请求的用户只能看到满足指定过滤条件的那些行。
“拒绝”图标 拒绝
发出请求的用户无法看到任何行。
提示
当您在 SAS Visual Analytics 应用程序(例如探索器)中测试条件时,会刷新该应用程序中的数据源(以便结果反映您对权限条件保存的更改)。请参见缓存

权限优先次序

以下是有关如何将权限条件合并到元数据层访问控制评估过程的关键几点:
  • 仅在最接近发出请求的用户的设置上时才应用权限条件。因为进一步删除的组成员关系,相关的其他权限条件不提供额外累积的访问权限。
  • 若在最高级别的身份优先次序上多个组之间存在身份优先次序关系,这些关联的条件在布尔值 OR 表达式中合并。若身份优先次序关系包括无条件授予,则访问权限不受任何条件的限制。
下表提供一些示例:
权限条件的优先次序
原则
情形
结果和说明
若因为用户的组成员关系有多个应用到用户的权限条件,则具有最高优先次序的身份控制结果。
针对 TableA 的条件限制 GroupA 的“读取”权限。
针对 TableA 的另一个条件限制 SASUSERS 组的“读取”权限。
用户是 GroupA 和 SASUSERS 的成员。
用户只能看到允许 GroupA 看到的行。GroupA 的身份优先次序高于 SASUSERS 的身份优先次序,因此分配给 GroupA 的过滤器定义用户的访问权限。
若在最高身份优先次序级别上有多个权限条件,则返回任何关联的条件所允许的任何数据。
针对 TableA 的条件限制 GroupA 的“读取”权限。
针对 TableA 的另一个条件限制 GroupB 的“读取”权限。
用户是 GroupA 和 GroupB 的第一级成员。
用户可以看到允许 GroupA 或 GroupB 看到的任意行。

语法(增强型编辑器)

提示
要访问增强型编辑器,请参见设置行级权限条件
  • 可视选项卡中,您可以从左窗格拖放运算符和数据项。
    注: 当您输入值时,不要将它们引在引号中。编辑器会为您添加任何必要的引号。
  • 文本选项卡上,可直接输入文本。仅使用那些在可视选项卡上可用的运算符。
    注: 文本选项卡并不使用基本编辑器和批处理工具所用的语法。要获得提示,请选择文本选项卡,然后点击窗口工具栏中的 “帮助”图标

语法(基本编辑器,批处理)

简介

本主题适用于在以下上下文中创建的权限条件:
  • 在 SAS Visual Analytics Administrator 6.1 及更早版本中。
  • 在元数据授权的批处理工具中。请参见 SAS Intelligence Platform: Security Administration Guide 中的 Batch Tools for Metadata Authorization

常规准则

  • 将非数值字符型值引在引号中。
  • 不支持 || 符号。而是使用关键字 OR。
  • 不支持使用月份或日期的表达式。
  • 不要在任何表达式中包括 WHERE 关键字。

支持的语法

支持的语法
语法元素
示例
AND, OR, NOT
Toy_Type='cars' OR Toy_Type='dolls'
IN, NOTIN
Toy_Type IN ('dolls' 'cars' 'animals')
CONTAINS, ?
Toy_Type CONTAINS 'cars'
BETWEEN, NOT BETWEEN
Toy_Price BETWEEN 20 AND 30
LIKE
Toy_Type LIKE 'dolls'
= , > , < , >= , <= , <>
Toy_Price=25
^= , NE
Toy_Price^=30

身份驱动的属性

下表说明您可用于创建身份驱动的权限条件的属性。当您在权限条件中使用这些属性时,基于每名发出请求的用户的元数据身份,值会在运行时动态代入条件。
身份驱动的属性
语法元素
说明
SUB::SAS.Userid
返回发出请求的用户的经过身份验证的 ID,规范化为大写格式 USERID 或 USERID@DOMAIN。
以下为在批处理工具中使用的示例:
-condition "empID='SUB::SAS.Userid'"
SUB::SAS.IdentityGroups
返回发出请求的用户的组和角色成员关系(直接、间接和隐式)。返回的列表包含组和角色名称(不是显示名称)。
以下为在批处理工具中使用的示例:
-condition "FacilityRegion IN ('SUB::SAS.IdentityGroups')"
SUB::SAS.PersonName
返回发出请求的用户的名称(在用户元数据定义的常规选项卡的名称字段中指定)。
SUB::SAS.ExternalIdentity
返回发出请求的用户的软件安装点特定的标识符。外部身份值由平台的用户导入宏填充(若您将用户信息批量加载至元数据)。
例如,若 LASR 表具有值与用户身份验证所用的用户 ID 相匹配的 empID 列,则可以使用条件 empID='SUB::SAS.Userid'。每个受影响的用户 ID 替换为条件的右侧。在 sasdemo 用户发出的请求中,条件解析为 empID='sasdemo',因此仅 empID 列中的值为 sasdemo 的行返回 sasdemo 用户。若您将条件分配给组,每名成员的访问限制为 empID 值与其经过身份验证的用户 ID 相匹配的行。以下为在批处理工具中使用的完整命令的示例:
sas-set-metadata-access -profile Admin "/Shared Data/LASRtableA(Table)" 
-grant sasusers:Read -condition "empID='SUB::SAS.Userid'"
注: 此处没有说明两个额外属性(SAS.IdentityName 和 SAS.IdentityGroupName),因为它们很少使用。请参见 SAS Intelligence Platform: Security Administration Guide 中的 About Identity-Driven Properties
上一页|下一页|页首
上次更新时间: 2018年10月24日