简析SAP HANA用户权限

SAPtechnical

聊聊SAP的那些事儿

更多精彩请关注公众号,不要错过精彩内容哦。

如果你觉得文章还不错,请推荐给你的朋友吧。

今天说一个HANA用户权限上的小问题,解释一下如何以最小的权限创建最终用户用于报表里。希望对遇到这样问题的朋友能有帮助。

▌前提准备

先准备一个如下所示的分析视图,给起个名叫AN_TEST,并且我希望最终用户使用Analysis Office for Excel 或者是 Tableau等报表工具或使用Web访问此视图。建模就是为了给别人用,所以,如下图所示:

首先,我们希望用户访问使用Web的视图。

并且,最终结果如下图所示:

▌角色解释

现在我们将在HANA中创建一个新用户并为其分配角色,以便他可以拥有权限访问该视图。

根据SAP HANA Security Guide文档提供的说明,建议将角色创建为repository roles,原因有以下两点:

1、它们可以在系统之间传输

2、它们不直接与数据库用户关联(所有设计时对象均由用户_SYS_REPO所拥有)

我们首先为最终用户创建一个角色。

因此,我们要创建一个Analytic Privilege。创建过程相信大家都知道,简单说一下路径,选择Project -> 然后选 New -> Other -> 再选择 Analytic Privilege。并将其命名为AP_AN_TEST,然后添加限制,如下所示:

现在我们已经准备好了分析视图和Analytic Privilege。 所以现在我们可以为我们的最终用户创建一个角色。

创建角色的过程大家也应该知道,简单说一下路径:选择Project -> 然后选 New -> Other -> 再选择 Role。并将其命名为AN_TEST_ROLE,并为其提供对_SYS_BIC模式中存在的分析视图列视图的访问权限,并且添加我们在前面步骤中创建的Analytic Privilege。

现在我们的角色已准备就绪。

▌用户解释

我们需要做的第二件事是创建用户。我们可以创建一个普通数据库用户和一个受限用户。 两者的区别如下:

由于我们不希望最终用户在生产环境中创建任何内容,因此我们将创建一个受限用户。

创建受限用户的过程,简单说一下路径:选择Users -> 然后选择New User -> 然后输入用户名,我这里用TEST,然后选中受限制的用户复选框。如下图所示:

默认情况下,没有角色授予最终用户。 要授予我们在上面创建的AN_TEST_ROLE,我们使用运行下面的SQL并调用GRANT_ACTIVATED_ROLE这个存储过程。

现在我们的用户已经创建,他可以通过Web访问视图,如下所示:

我们已经实施了限制,即我们的用户应该只能查看PUNJAB区域数据,因此用户只能看到PUNJAB销售区域数据。

▌处理过程

现在,假设用户想要使用Analysis Office for Excel访问此视图。然而,当用户尝试使用Analysis Office for Excel登录到HANA时,会得到下面的错误:

原因是,我们的用户是受限用户,不允许使用ODBC访问登录。

为了解决这个错误,我们需要授予RESTRICTED_USER_ODBC_ACCESS角色给我们的用户,并且我们还需要在_SYS_BI模式上提供SELECT特权(或者我们可以在像_SYS_BI模式中的BIMC *对象这样的少数对象上提供SELECT访问),以便用户可以访问元数据 否则用户将得到下面的错误:

由于RESTRICTED_USER_ODBC_ACCESS是一个目录角色,因此任何具有ROLE ADMIN权限并具有GRANT选项的RESTRICTED_USER_ODBC_ACCESS角色的用户都可以将此角色授予我们的TEST用户。

我们不应该将ROLE ADMIN权限授予任何用户。

但是,我们知道_SYS_REPO用户具有ROLE ADMIN的权限,所以,我们可以使用GRANT选项将RESTRICTED_USER_ODBC_ACCESS角色授予_SYS_REPO用户。

然后,我们先创建一个新角色,在这里我们将扩展先前创建的RESTRICTED_USER_ODBC_ACCESS角色和AN_TEST_ROLE角色,并且还提供对_SYS_BI模式的SELECT访问。如下图所示:

一旦激活了上述角色,我们就可以看到RESTRICTED_USER_ODBC_ACCESS角色和Security.roles :: AN_TEST_ROLE角色。

现在我们将新创建的AN_TEST_OD_ROLE角色授予TEST用户。

现在,当我们使用用户TEST登录到Analysis Office for Excel时,我们可以选择分析视图进行展示报表。

然后我们可以拖放字段来检查报表,如下所示:

▌注意事项

创建最终用户时请牢记以下事项:

1、如果你不希望它们在生产系统中创建内容,建议你将最终用户创建为受限用户。

2、创建repository roles,因为它们可以有版本和传输。

3、不要授予最终用户对表的SELECT访问权限。

4、不要将_SYS_BIC模式的SELECT访问授予最终用户。

5、repository role的设计时版本及其激活的运行时版本必须始终包含相同的权限。

6、无法使用SQL语句DROP ROLE或SAP HANA 控制台删除repository。要删除repository  role,必须在repository 中将其删除并激活。 删除角色的运行时版本。

|参考资料:SAP HANA Security Guide

全文到此结束,感谢阅读。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180530G0AFL400?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券