【转载】在SAP HANA中创建普通用户进行模型视图开发的权限设置
模型视图是SAP HANA中一个重要的组成部分,它包括属性视图、分析视图以及计算视图。正确地使用模型视图进行开发,不仅能够在团队开发中使开发人员对业务理解能有更好的传递作用,也能够对业务场景进行加速,提高执行速度。
相信读者之前对于模型视图的概念已经有了一定的认识,并且也初步了解如何利用管理员(SYSTEM)用户来建立模型视图,并进行数据查看及分析。 但管理员用户被赋予的权限很大,可以进行很多系统和用户级的操作。所以在实际项目开发过程中,对于SYSTEM用户的使用是十分谨慎的。那对于一般的开发者用户来说,如果想实现模型视图的开发,需要对其设置哪些权限呢?
下面我们逐步介绍一个新建的普通用户需要哪些权限才能进行正常的模型视图开发。
1、首先创建一个用户REPOUSER。
对于新建的用户,SAP HANA会赋一个默认的PUBLIC权限。通过SAP HANA Studio连接到这个用户,可以看到最初始分配的所能查询到的内容。SAP HANA会分配一个和用户同名的schema给该用户,用户有对该schema操作的所有权限。
2、进入Content中,获得给定的package的权限。
首先通过SYSTEM用户新建一个名为repo的package。
刚开始展开Content时,提示需要”execute on repository_rest”的权限。
在SYSTEM用户下,执行如下SQL命令:
GRANT EXECUTE ON REPOSITORY_REST to REPOUSER;
此时不再提示权限不足,但仍然看不到Content下的packages信息。下面需要让REPOUSER能够访问到repo这个package并能进行模型视图的创建、修改等操作。在SYSTEM用户下,执行如下SQL命令:
GRANT REPO.READ ON _SYS_REPO."repo" TO REPOUSER;
GRANT REPO.EDIT_NATIVE_OBJECTS ON _SYS_REPO."repo" TO REPOUSER;
GRANT REPO.ACTIVATE_NATIVE_OBJECTS ON _SYS_REPO."repo" TO REPOUSER;
GRANT REPO.MAINTAIN_NATIVE_PACKAGES ON _SYS_REPO."repo" TO REPOUSER;
此时REPOUSER已经拥有操作repo的权限了。
3、创建模型视图。
这里我们以建立一个分析视图为例,创建一个名为SALES_BY_REGION的分析视图。在此例中,分析视图用到的实体表所在的schema为”FURNITURE”,此时需要将FURNITURE的select权限赋给REPOUSER用户。在SYSTEM用户下,执行如下SQL命令:
GRANT SELECT ON SCHEMA "FURNITURE" TO REPOUSER;
分析视图建立好之后,需要进行验证和激活。
在SAP HANA中,建立好的模型视图最终都是由_SYS_REPO这个用户进行统一管理,因此_SYS_REPO用户需要有对实体表所在的schema的select权限。这时如果发现在验证和激活过程中出现的权限方面的错误提示,是需要将对应的schema的权限赋给SYS_REPO用户。在SYSTEM用户下,执行如下SQL命令:
GRANT SELECT ON SCHEMA FURNITURE TO _SYS_REPO WITH GRANT OPTION;
这时候模型视图已经通过验证和激活了,剩下的就是如何查看模型视图的数据了。查看模型视图数据的方法有两种,一种是通过执行SQL方式,另一种则是通过SAP HANA Studio里面的Data Preview方式。
对于第一种SQL方式:SAP HANA中建立的模型视图,都存放在_SYS_BIC这个schema下,以package_name/view_name方式来命名。这里我们要查询SALES_BY_REGION这个视图的数据,就可以执行如下的SQL。同样的,前提是需要有_SYS_BIC这个schema的select权限。在SYSTEM用户下,执行如下SQL命令:
GRANT SELECT ON SCHEMA _SYS_BIC TO REPOUSER;
对于在HANA Studio中进行模型视图的数据查询,情况稍有不同,需要再额外增加一些权限。除了上述的_SYS_BIC的select权限,还需要加上另两个权限。在SYSTEM用户下,执行如下SQL命令:
GRANT SELECT ON SCHEMA _SYS_BI TO REPOUSER;
CALL GRANT_ACTIVATED_ANALYTICAL_PRIVILEGE('_SYS_BI_CP_ALL','REPOUSER')
这样便可以在SAP HANA Studio中进行data preview了。