分析权限 SAP HANA:如何創造?

⚡ 智能摘要

分析权限 SAP HANA 在对象权限之上增加了行级授权,因此查询同一信息视图的两个用户只能看到其分配的权限范围内的记录。 SAP HANA 工作室。

  • 🔘 目的: 对象权限会打开整个视图,而分析权限则会筛选视图返回的行。
  • ☑️ 范围: 属性视图、分析视图和计算视图都可以受到分析权限的保护。
  • 限制: 同一属性内的值用 OR 连接,不同属性之间的限制用 AND 连接。
  • 🧪 计费示例: CA_FI_LEDGER 计算视图的权限限制用户 ABHI_TEST 只能访问公司 1000。
  • 🛠️ 任务: 该限制仅在验证、激活、分配给用户或角色以及部署之后生效。
  • 📈 方向: 基于 XML 的权限已被弃用,因此新的限制被编写为 SQL 分析权限。

分析权限限制了对行级数据的访问 SAP HANA

什么是分析权限? SAP 花?

分析权限限制用户只能查看其被授权查看的数据,因此它是核心组成部分。 SAP HANA 安全性.

SQL权限授予的是对象级别的授权,而不是记录级别的授权。拥有视图SELECT权限的用户可以读取视图中的每一行。如果需要行级别的限制,则应使用分析权限。

分析权限提供对以下信息视图的授权。

下方创建了一个分析权限,并将其分配给用户“ABHI_TEST”,以便该用户只能查看值为 1000 的公司的数据。这两个权限需要同时使用:对象权限用于打开视图,而分析权限决定返回哪些行。

如何在系统中创建分析权限 SAP HANA

以下六个步骤依次进行 SAP HANA 工作室从创建权限到使用第二个用户进行测试。

步骤1) 转到“分析权限”。右键单击“建模”包,然后选择“新建”->“分析权限”,如下图所示。

建模包上下文菜单中新增“分析权限”选项

步骤2) 此时会弹出“新建”窗口。请输入下方显示的分析权限详细信息。

  1. 输入分析权限名称和标签。
  2. 软件包名称会自动选择。
  3. 该选择选项会创建一个新的权限。

新增分析权限对话框,包含名称、标签和包字段

下一步,将显示分析权限编辑器,用于添加和编辑权限。

步骤3) 单击“确定”按钮。分析权限编辑器随即打开,首先选中参考模型。

  1. “常规”部分显示名称和标签。
  2. 点击参考模型部分中的“添加”按钮,如下图所示。
  3. 选择之前创建的计算视图(CA_FI_LEDGER)。

分析权限编辑器“参考模型”部分中的“添加”按钮

然后在同一编辑器中定义有效性和属性限制。

  1. 点击“添加”按钮,创建权限的有效期。
  2. 赋予权限有效期。
  3. 点击“添加”按钮,选择带有限制条件的属性。
  4. 选择“公司”属性。
  5. 点击“添加”按钮,为该属性赋值。
  6. 通过选择类型或运算符以及值来赋值。此处用户仅限于公司 1000 的计算视图中的数据,如下所示。

分析权限编辑器,具有参考模型、有效性和公司限制

验证并激活分析权限。激活后,该权限将在建模包下的“分析权限”文件夹中创建,如下所示。

已激活“分析权限”文件夹中列出的分析权限

步骤4) 将分析权限分配给用户“ABHI_TEST”,该用户已拥有建模包的权限。 Double-在“安全”->“用户”下单击用户“ABHI_TEST”。

  1. 选择“分析权限”选项卡。
  2. 点击“+”按钮。
  3. 此时会弹出“选择分析权限”窗口。请输入之前创建的分析权限的名称。
  4. 选择分析权限。
  5. 点击如下所示的“确定”按钮。

在用户维护屏幕上选择“分析权限”弹出窗口

分析权限已添加到用户,如下所示。

添加权限后,用户 ABHI_TEST 的“分析权限”选项卡

步骤5) 单击“部署”按钮,将更改部署到用户。系统将显示一条消息,提示用户“ABHI_TEST”已更改,如下所示。

部署确认消息,表明用户 ABHI_TEST 已更改

步骤6) 检查分析权限。使用 HANAUSER 系统以“ABHI_TEST”身份登录,确认分配是否有效。

  1. 选择 HDB (HANAUSER) 当前系统,然后右键单击它。
  2. 选择“添加不同用户的系统”,然后输入“ABHI_TEST”的用户名和密码,如下所示。
  3. 系统 HDB (ABHI_TEST) 已添加到系统列表中。

使用“添加系统”和“不同用户”选项,可以以 ABHI_TEST 身份登录。

ABHI_TEST 用户没有完全访问 HANAUSER 创建的计算视图的数据,因为 HANAUSER 创建了一个分析权限,将该视图限制为公司 1000,并将其分配给了 ABHI_TEST。

进入内容文件夹 -> 选择程序包 -> 计算视图 (CA_FI_LEDGER) -> 右键单击​​ -> 数据预览。数据预览屏幕如下所示。

计算视图的数据预览仅限于公司 1000。

计算视图中的数据仅限于公司代码 1000,这证实了该用户已激活分析权限。

经典 XML 和 SQL 分析权限对比

分析权限有两种类型,对于任何新的开发项目来说,选择哪种都至关重要。上面显示的编辑器创建的是经典的、基于 XML 的权限。SQL 分析权限是在 [此处应填写引入的版本信息] 中引入的。 SAP HANA 1.0 SPS 10 并表达与 SQL 筛选条件相同的限制。

方面 经典(基于 XML) SQL 分析权限
定义 在建模器中以图形方式维护,并存储为 XML 设计时对象。 由 SQL 筛选条件定义,因此复杂的逻辑仍然清晰易读。
医美问题 使用简单运算符进行属性限制。 完整的 SQL 表达式,包括嵌套和组合条件。
状态 已弃用 SAP HANA 2.0 SPS 02。 建议所有新权限均适用。
可用性 不适用于 SAP HANA云。 支持于 SAP HANA 2.0 和 SAP HANA云。

此 SAP HANA建模器提供了一个迁移活动,可以将传统的基于XML的权限转换为基于SQL的权限,因此无需手动重写现有限制。 SAP 在 HANA Cloud 中,权限成为 HDI 容器内的设计时工件,并通过角色而不是用户编辑器传递给用户。

如何评估分析权限限制

了解各种条件如何组合,可以避免限制措施导致收益过高或收益为零。

  • 为一个属性列出的多个值通过逻辑运算组合在一起。 OR因此,用户可能会看到公司 1000 或公司 2000。
  • 对不同属性的限制与逻辑相结合。 AND所以公司和国家都必须匹配。
  • 当用户拥有对同一视图的多个分析权限时,结果会相加,这反而会扩大访问权限,而不是缩小访问权限。
  • 静态限制存储固定值,而动态限制在运行时从过程中读取允许的值,因此一个权限可以服务于多个用户。

仅当视图的“应用权限”属性指定了权限类型时,才会检查该视图,并且此检查是在 SELECT 对象权限之外额外运行的。激活生成的列视图位于 _SYS_BIC 模式中,可以从 EFFECTIVE_STRUCTURED_PRIVILEGES 系统视图中读取用户的有效限制。

常见分析权限错误及解决方法

信息视图上的大多数授权问题都源于以下情况之一。

  • 查看时出现未授权错误。 用户拥有分析权限,但没有对生成的列视图或底层架构的 SELECT 权限。请授予这两项权限。
  • 预览未返回任何行。 受限属性没有匹配的值,或者权限的有效期已结束。
  • 该限制被忽略。 权限已创建但从未激活,或者视图未设置其“应用权限”属性。
  • 这一改变没有效果。 该任务未部署,或者用户会话在部署之前启动,需要重新连接。
  • 反正一切都看得见。 该用户拥有 _SYS_BI_CP_ALL 权限,可以无限制地访问所有信息视图,因此不应担任生产角色。

通过角色而非直接向用户授予分析权限,以便可以在一个地方查看、传递和撤销相同的限制。受保护视图的建模上下文在[此处]中有所介绍。 SAP HANA建模SAP HANA 指南。

常见问题

SAP HANA 使用系统权限进行管理任务,使用对象权限进行表和视图操作,使用包权限进行存储库内容操作,使用应用程序权限进行 XS 应用程序操作,使用分析权限进行信息视图内部的行级访问。

是的。“参考模型”部分接受多个信息视图,并且只要列出的每个视图中都存在受限属性,则相同的属性限制将应用于每个视图。

_SYS_BI_CP_ALL 是一个生成的分析权限,它授予对所有信息视图的无限制访问权限。对于在沙箱环境中进行建模的人员来说,这很方便,但它会破坏行级安全性,因此不应在生产角色中使用。

利用机器学习技术分析访问日志,可以分析正常的查询行为,并标记出那些突然访问异常公司或地区的账户。这类工具会对风险较高的权限进行排序以供审查,但最终仍由安全管理员决定需要更改哪些权限。

GitHub Copilot 可以根据简短的注释自动生成过滤条件及其相关的 SQL 语句,从而简化处理复杂限制的操作。每个生成的条件都必须使用真实数据进行测试,因为错误的运算符可能会悄无声息地扩大访问权限。

SAP HANA Cloud 仅支持 SQL 分析权限。该权限是 HDI 容器内的一个设计时组件,通过角色授予,并且可以使用经典的 XML 编辑器。 SAP HANA Studio 已停止服务。

不。此限制仅针对设置了“应用权限”属性的信息视图进行评估。对基表的查询仅受对象权限控制,因此敏感表应通过视图公开。

角色将权限捆绑在一起,是传输和审查的推荐容器。分析权限是该捆绑包中的一个对象,直接授予用户该权限会使后续的审计工作更加困难。

总结一下这篇文章: