SAP HANA 安全:完整教程

什么是 Sap Hana 安全?

SAP HANA 安全是指保护重要数据免遭未经授权访问,并确保符合公司采纳的安全标准和规定。

SAP HANA 提供了一项功能,即多租户数据库,可以在单个 SAP HANA 系统上创建多个数据库。这被称为多租户数据库容器。因此,SAP HANA 为所有多租户数据库容器提供所有与安全相关的功能。

SAP HANA 提供以下与安全相关的功能 –

  • 用户和角色管理
  • 授权
  • 认证
  • 持久化层数据加密
  • 网络层数据加密

SAP HANA 用户和角色

SAP HANA 用户和角色管理配置取决于以下架构 –

  1. 3 层架构。

    SAP HANA 可用作 3 层架构中的关系数据库。

    在此架构中,安全功能(授权、身份验证、加密和审计)安装在应用程序服务器层。

    SAP 应用程序(ERP、BW 等)仅通过技术用户或数据库管理员(Basis Person)连接到数据库。最终用户无法直接访问数据库或数据库服务器。

SAP HANA 3-Tier Architecture

  1. 2 层架构。

    SAP HANA 扩展应用程序服务 (SAP HANA XS) 基于 2 层架构,其中应用程序服务器、Web 服务器和开发环境嵌入在同一系统中。

SAP HANA 2-Tier Architecture

SAP HANA 身份验证

数据库用户标识了谁正在访问 SAP HANA 数据库。这个过程通过称为“身份验证”的流程来验证。SAP HANA 支持多种身份验证方法。单点登录 (SSO) 用于集成多种身份验证方法。

SAP HANA 支持以下身份验证方法 –

  • Kerberos:可在以下情况使用 –
  • 直接从 JDBC 和 ODBC 客户端(SAP HANA Studio)。
  • 通过 HTTP 访问 SAP HANA XS 时。

  • 用户名/密码当用户输入其数据库用户名和密码时,SAP HANA 数据库会验证用户。

  • 安全断言标记语言 (SAML)

    SAML 可用于身份验证直接通过 ODBC/JDBC 访问 SAP HANA 数据库的 SAP HANA 用户。这是一个将外部用户身份映射到内部数据库用户的过程,因此用户可以使用外部用户 ID 登录 sap 数据库。

  • SAP Logon 和断言票证

    可以通过 Logon 或 Assertion Tickets 验证用户,这些票证会配置并颁发给用户。

  • X.509 客户端证书

    当 SAP HANA XS 通过 HTTP 访问时,可以使用受信任的认证机构 (CA) 签名的客户端证书来验证用户。

SAP HANA 授权

当用户使用客户端界面(JDBC、ODBC 或 HTTP)访问 SAP HANA 数据库时,需要 SAP HANA 授权。

根据授予用户的授权,用户可以在数据库对象上执行数据库操作。这种授权称为“权限”。

权限可以直接授予用户,也可以间接(通过角色)授予用户。授予用户的所有权限组合为一个单元。

当用户尝试访问任何 SAP HANA 数据库对象时,HANA 系统会通过用户角色对用户执行授权检查,并直接授予权限。

当找到请求的权限时,HANA 系统会跳过进一步的检查,并授予对请求数据库对象的访问权限。

在 SAP HANA 中,存在以下权限 –

权限类型 描述
系统权限 它控制正常的系统活动。系统权限主要用于 –

  • 在 SAP HANA 数据库中创建和删除 Schema
  • 在 SAP HANA 数据库中管理用户和角色
  • 监控和跟踪 SAP HANA 数据库
  • 执行数据备份
  • 管理许可证
  • 管理版本
  • 管理审计
  • 导入和导出内容
  • 维护交付单元
对象权限 对象权限是 SQL 权限,用于授予读取和修改数据库对象的权限。要访问数据库对象,用户需要对象权限或其所在 Schema 的权限。对象权限可以授予目录对象(表、视图等)或非目录对象(开发对象)。
对象权限如下 –

  • CREATE ANY
  • UPDATE、INSERT、SELECT、DELETE、DROP、ALTER、EXECUTE
  • INDEX、TRIGGER、DEBUG、REFERENCES
分析权限 分析权限用于允许对 SAP HANA 信息模型(属性视图、分析视图、计算视图)的数据进行读取访问。

  • 此权限在查询处理期间进行评估。
  • 分析权限根据用户的角色,授予用户对同一信息视图中不同数据部分的访问权限。
  • 同一信息视图基于用户角色。
  • 在 SAP HANA 数据库中使用分析权限来提供行级数据

为个人用户控制同一视图中的数据可见性。

软件包权限 软件包权限用于在 SAP HANA 存储库中对单个软件包执行操作的授权。
应用程序权限 在 SAP HANA 扩展应用程序服务(SAP HANA XS)中需要应用程序权限才能访问应用程序。

应用程序权限通过 _SYS_REPO schema 中的 GRANT_APPLICATION_PRIVILEGE 和 REVOKE_APPLICATION_PRIVILEGE 过程授予和撤销。

用户权限 这是 SQL 权限,用户可以授予给自己的用户。 ATTACH DEBUGGER 是唯一可以授予用户的权限。

SAP HANA 用户管理和角色管理

要访问 SAP HANA 数据库,需要用户。根据不同的安全策略,SAP HANA 中有两种用户如下 –

  1. 技术用户 (DBA 用户) – 这是直接使用 SAP HANA 数据库并拥有必要权限的用户。通常,这些用户不会从数据库中删除。

    这些用户是为管理任务而创建的,例如创建对象和授予数据库对象或应用程序上的权限。

    SAP HANA 数据库系统默认提供以下标准用户 –

  • SYSTEM
  • SYS
  • _SYS_REPO
  1. 数据库或真实用户:每个希望在 SAP HANA 数据库上工作 else 的用户都需要一个数据库用户。数据库用户是实际在 SAP HANA 上工作的人。

    数据库用户有两种类型,如下所示 –

用户类型 描述 分配的角色
标准用户 此用户可以在自己的 Schema 中创建对象,并读取系统视图中的数据。标准用户使用“CREATE USER”语句创建。 PUBLIC 角色用于读取系统视图。
受限用户 受限用户无法通过 SQL 控制台进行完全 SQL 访问,并且使用“CREATE RESTRICTED USER”语句创建。如果使用任何应用程序需要权限,则通过角色提供。

  • 受限用户无法创建数据库对象。
  • 受限用户无法查看数据库中的数据。
  • 受限用户仅通过 HTTP 连接到数据库。
  • 必须使用 SQL 语句启用客户端连接的 ODBC/JDBC 访问。
用户需要 RESTRICTED_USER_ODBC_ACCESS 或 RESTRICTED_USER_JDBC_ACCESS 角色才能完全访问 ODBC/JDBC 功能。

SAP HANA 用户管理员可以进行以下活动 –

  1. 创建/删除用户。
  2. 定义和创建角色。
  3. 将角色授予用户。
  4. 重置用户密码。
  5. 根据需要重新激活/禁用用户。

1. 在 SAP HANA 中创建用户 –只有具有 ROLE ADMIN 权限的数据库用户才能在 SAP HANA 中创建用户和角色。

步骤 1)要在 SAP HANA Studio 中创建新用户,请转到安全选项卡,如下所示,然后按照以下步骤操作;

  1. 转到 Security 节点。
  2. 选择 Users (右键单击) -> New User。

Create User in SAP HANA

步骤 2)将显示用户创建屏幕。

  1. 输入用户名。
  2. 为用户输入密码。
  3. 这些是身份验证机制,默认使用用户名/密码进行身份验证。

Create User in SAP HANA

通过单击部署在 SAP HANA 中创建用户按钮即可创建用户。

2. 定义和创建角色

角色是权限的集合,可以授予其他用户或角色。角色包括数据库对象和应用程序的权限,具体取决于工作的性质。

这是授予权限的标准机制。权限可以直接授予用户。SAP HANA 数据库中有许多标准角色(例如 MODELLING、MONITORING 等)。

我们可以使用标准角色作为模板来创建自定义角色。

一个角色可以包含以下权限 –

  • 用于管理和开发任务的系统权限(CATALOG READ、AUDIT ADMIN 等)
  • 用于数据库对象的对象权限(SELECT、INSERT、DELETE 等)
  • 用于 SAP HANA 信息视图的分析权限
  • 对存储库包的软件包权限(REPO.READ、REPO.EDIT_NATIVE_OBJECTS 等)
  • 用于 SAP HANA XS 应用程序的应用程序权限。
  • 对用户的权限(用于存储过程调试)。

角色创建

步骤 1)在此步骤中,

  1. 转到 SAP HANA 系统中的 Security 节点。
  2. 选择 Role 节点(右键单击)并选择 New Role。

Role Creation in SAP HANA

步骤 2)将显示一个角色创建屏幕。

Role Creation in SAP HANA

  1. 在 New Role Block 下Give Role name。
  2. 选择 Granted Role 选项卡,然后单击“+”图标添加标准角色或现有角色。
  3. 选择所需的角色(例如 MODELLING、MONITORING 等)

步骤 3) 在此步骤中,

  1. 选定的角色已添加到 Granted Roles 选项卡。
  2. 可以通过选择 System Privileges、Object Privileges、Analytic Privileges、Package Privileges 等直接将权限分配给用户。
  3. 单击部署图标以创建角色。

Role Creation in SAP HANA

如果希望将此角色分配给其他用户和角色,请勾选“Grantable to other users and roles”选项。

3. 将角色授予用户

步骤 1)在此步骤中,我们将把“MODELLING_VIEW”角色分配给另一个用户“ABHI_TEST”。

  1. 转到 Security 节点下的 User 子节点并双击它。将显示 User 窗口。
  2. 单击 Granted roles 的“+”图标。
  3. 将出现一个弹出窗口,搜索要分配给用户的角色名称。

Grant Role to User in SAP HANA

步骤 2)在此步骤中,角色“MODELLING_VIEW”将被添加到 Role 下。

Grant Role to User in SAP HANA

步骤 3) 在此步骤中,

  1. 单击 Deploy 按钮。
  2. 将显示消息“User ‘ABHI_TEST’ changed”。

Grant Role to User

4. 重置用户密码

如果需要重置用户密码,请转到 Security 节点下的 User 子节点并双击它。将显示 User 窗口。

步骤 1)在此步骤中,

  1. 输入新密码。
  2. 输入确认密码。

Resetting User Password

步骤 2) 在此步骤中,

  1. 单击 Deploy 按钮。
  2. 将显示消息“User ‘ABHI_TEST’ changed”。

Resetting User Password in SAP HANA

5. 重新激活/停用用户

转到 Security 节点下的 User 子节点并双击它。将显示 User 窗口。

有一个 De-Activate User 图标。单击它

Re-Activate/De-activate User in SAP HANA

将出现确认消息“Popup”。单击“Yes”按钮。

Re-Activate/De-activate User in SAP HANA

将显示消息“User ‘ABHI_TEST’ deactivated”。De-Activate 图标将更改为“Activate user”。现在我们可以从同一个图标激活用户。

SAP HANA 许可证管理

使用 SAP HANA 数据库需要许可证密钥。可以使用 SAP HANA Studio、SAP HANA HDBSQL Command Line tool 和 HANA SQL Query editor 来安装和删除许可证密钥。

SAP HANA 数据库支持两种类型的许可证密钥 –

  • 永久许可证密钥:永久许可证密钥有效期至到期日期。我们需要在到期前申请并应用许可证密钥。如果许可证密钥到期,则会自动安装临时许可证密钥,有效期为 28 天。
  • 临时许可证密钥:在新 SAP HANA 数据库安装时会自动安装。有效期为 90 天,之后可以向 SAP 申请永久许可证密钥。

许可证管理授权

许可证管理需要“LICENSE ADMIN”权限。

SAP HANA 审计

SAP HANA 审计功能允许您监控和记录在 SAP HANA 系统中执行的操作。在创建审计策略之前,应为此系统激活此功能。

SAP HANA 审计授权

SAP HANA 审计需要“AUDIT ADMIN”系统权限。

摘要

在本教程中,我们学习了以下主题 –

  • SAP HANA 安全概述。
  • SAP HANA 身份验证详解。
  • SAP HANA 授权详解。
  • SAP HANA 用户管理方法。
  • SAP HANA 角色管理方法
  • SAP HANA 许可证管理流程。
  • SAP HANA 角色审计流程。