我是HANA数据库的新手。我只是尝试通过Eclipse系统编辑器在HANA中创建新用户。我只选择了下面的角色作为用户创建的一部分。
sap.hana.xs.lm.roles::Developer
但是,由于执行查询从"PUBLIC"."EFFECTIVE_ROLES“中选择了USER_NAME = 'TEST_USER';,则显示了下面的角色
ROLE_NAME
公共
sap.hana.xs.lm.roles::Developer
sap.hana.uis.db::SITE_USER
sap.hana.xs.lm.roles::Display
sap.hana.xs.lm.pe.roles::PE_Display
为什么要在用户中添加其他角色,即使没有被选中?
发布于 2020-07-24 07:40:45
SAP中的角色是特权、和其他角色的集合。这可能导致一个角色包含多个其他角色的情况,每个角色都可以包含其他角色和特权。这样,您就有了直接和间接角色的层次结构,并将权限分配给了用户帐户。
查询的系统视图是EFFECTIVE_PRIVILEGES。它唯一最重要的功能是展开所有直接分配给和的角色(有效地遍历角色-特权-层次结构),并返回所有这些分配。
这种层次结构的“展开”在普通SQL中并不容易/有效,因此这个系统视图提供了作为内置功能的特殊功能。
预定义的角色sap.hana.xs.lm.roles::Developer包含其他几个角色(如查询结果所示)。
为了进行双重检查,您甚至可以通过导航到sap.hana.xs.lm.roles包来查看HANA存储库中的角色定义,因为该角色是作为设计时伪物交付的。
如果您实际上只想看到直接将角色/特权分配给用户(或角色),那么使用系统视图( system )-- GRANTED_ROLES或GRANTED_PRIVILEGES --就可以得到这样的结果。
https://stackoverflow.com/questions/63051763
复制相似问题