SAP HANA 安全:完整教程
什么是 Sap Hana 安全?
SAP HANA 安全是指保护重要数据免遭未经授权访问,并确保符合公司采纳的安全标准和规定。
SAP HANA 提供了一项功能,即多租户数据库,可以在单个 SAP HANA 系统上创建多个数据库。这被称为多租户数据库容器。因此,SAP HANA 为所有多租户数据库容器提供所有与安全相关的功能。
SAP HANA 提供以下与安全相关的功能 –
- 用户和角色管理
- 授权
- 认证
- 持久化层数据加密
- 网络层数据加密
SAP HANA 用户和角色
SAP HANA 用户和角色管理配置取决于以下架构 –
- 3 层架构。
SAP HANA 可用作 3 层架构中的关系数据库。
在此架构中,安全功能(授权、身份验证、加密和审计)安装在应用程序服务器层。
SAP 应用程序(ERP、BW 等)仅通过技术用户或数据库管理员(Basis Person)连接到数据库。最终用户无法直接访问数据库或数据库服务器。
- 2 层架构。
SAP HANA 扩展应用程序服务 (SAP HANA XS) 基于 2 层架构,其中应用程序服务器、Web 服务器和开发环境嵌入在同一系统中。
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 中,存在以下权限 –
权限类型 | 描述 |
---|---|
系统权限 | 它控制正常的系统活动。系统权限主要用于 –
|
对象权限 | 对象权限是 SQL 权限,用于授予读取和修改数据库对象的权限。要访问数据库对象,用户需要对象权限或其所在 Schema 的权限。对象权限可以授予目录对象(表、视图等)或非目录对象(开发对象)。 对象权限如下 –
|
分析权限 | 分析权限用于允许对 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 中有两种用户如下 –
-
技术用户 (DBA 用户) – 这是直接使用 SAP HANA 数据库并拥有必要权限的用户。通常,这些用户不会从数据库中删除。
这些用户是为管理任务而创建的,例如创建对象和授予数据库对象或应用程序上的权限。
SAP HANA 数据库系统默认提供以下标准用户 –
- SYSTEM
- SYS
- _SYS_REPO
-
数据库或真实用户:每个希望在 SAP HANA 数据库上工作 else 的用户都需要一个数据库用户。数据库用户是实际在 SAP HANA 上工作的人。
数据库用户有两种类型,如下所示 –
用户类型 | 描述 | 分配的角色 |
---|---|---|
标准用户 | 此用户可以在自己的 Schema 中创建对象,并读取系统视图中的数据。标准用户使用“CREATE USER”语句创建。 | PUBLIC 角色用于读取系统视图。 |
受限用户 | 受限用户无法通过 SQL 控制台进行完全 SQL 访问,并且使用“CREATE RESTRICTED USER”语句创建。如果使用任何应用程序需要权限,则通过角色提供。
|
用户需要 RESTRICTED_USER_ODBC_ACCESS 或 RESTRICTED_USER_JDBC_ACCESS 角色才能完全访问 ODBC/JDBC 功能。 |
SAP HANA 用户管理员可以进行以下活动 –
- 创建/删除用户。
- 定义和创建角色。
- 将角色授予用户。
- 重置用户密码。
- 根据需要重新激活/禁用用户。
1. 在 SAP HANA 中创建用户 –只有具有 ROLE ADMIN 权限的数据库用户才能在 SAP HANA 中创建用户和角色。
步骤 1)要在 SAP HANA Studio 中创建新用户,请转到安全选项卡,如下所示,然后按照以下步骤操作;
- 转到 Security 节点。
- 选择 Users (右键单击) -> New User。
步骤 2)将显示用户创建屏幕。
- 输入用户名。
- 为用户输入密码。
- 这些是身份验证机制,默认使用用户名/密码进行身份验证。
通过单击部署按钮即可创建用户。
2. 定义和创建角色
角色是权限的集合,可以授予其他用户或角色。角色包括数据库对象和应用程序的权限,具体取决于工作的性质。
这是授予权限的标准机制。权限可以直接授予用户。SAP HANA 数据库中有许多标准角色(例如 MODELLING、MONITORING 等)。
我们可以使用标准角色作为模板来创建自定义角色。
一个角色可以包含以下权限 –
- 用于管理和开发任务的系统权限(CATALOG READ、AUDIT ADMIN 等)
- 用于数据库对象的对象权限(SELECT、INSERT、DELETE 等)
- 用于 SAP HANA 信息视图的分析权限
- 对存储库包的软件包权限(REPO.READ、REPO.EDIT_NATIVE_OBJECTS 等)
- 用于 SAP HANA XS 应用程序的应用程序权限。
- 对用户的权限(用于存储过程调试)。
角色创建
步骤 1)在此步骤中,
- 转到 SAP HANA 系统中的 Security 节点。
- 选择 Role 节点(右键单击)并选择 New Role。
步骤 2)将显示一个角色创建屏幕。
- 在 New Role Block 下Give Role name。
- 选择 Granted Role 选项卡,然后单击“+”图标添加标准角色或现有角色。
- 选择所需的角色(例如 MODELLING、MONITORING 等)
步骤 3) 在此步骤中,
- 选定的角色已添加到 Granted Roles 选项卡。
- 可以通过选择 System Privileges、Object Privileges、Analytic Privileges、Package Privileges 等直接将权限分配给用户。
- 单击部署图标以创建角色。
如果希望将此角色分配给其他用户和角色,请勾选“Grantable to other users and roles”选项。
3. 将角色授予用户
步骤 1)在此步骤中,我们将把“MODELLING_VIEW”角色分配给另一个用户“ABHI_TEST”。
- 转到 Security 节点下的 User 子节点并双击它。将显示 User 窗口。
- 单击 Granted roles 的“+”图标。
- 将出现一个弹出窗口,搜索要分配给用户的角色名称。
步骤 2)在此步骤中,角色“MODELLING_VIEW”将被添加到 Role 下。
步骤 3) 在此步骤中,
- 单击 Deploy 按钮。
- 将显示消息“User ‘ABHI_TEST’ changed”。
4. 重置用户密码
如果需要重置用户密码,请转到 Security 节点下的 User 子节点并双击它。将显示 User 窗口。
步骤 1)在此步骤中,
- 输入新密码。
- 输入确认密码。
步骤 2) 在此步骤中,
- 单击 Deploy 按钮。
- 将显示消息“User ‘ABHI_TEST’ changed”。
5. 重新激活/停用用户
转到 Security 节点下的 User 子节点并双击它。将显示 User 窗口。
有一个 De-Activate User 图标。单击它
将出现确认消息“Popup”。单击“Yes”按钮。
将显示消息“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 角色审计流程。