为什么在HANA数据库中创建用户时显示甚至未分配的其他角色



我是HANA数据库的新手。我只是想通过Eclipse系统编辑器在HANADB中创建新的User。作为用户创建的一部分,我只选择了以下角色。

sap.hana.xs.lm.roles::开发者

但是,由于执行查询select role_name from",它显示了以下角色;公共"有效_;其中USER_NAME="TEST_USER">

角色名称

公共

sap.hana.xs.lm.roles::开发者

sap.hana.uis.db::SITE_USER

sap.hana.xs.lm.roles::显示

sap.hana.xs.lm.pe.roles::pe_Display

为什么向用户添加其他角色甚至没有选择?

SAP HANA中的角色是权限其他角色的集合。这可能导致一个角色包含多个其他角色,每个角色都可以包含其他角色和权限。这样,您就有了一个直接和间接分配给用户帐户的角色和权限的层次结构。

您查询的系统视图是EFFECTIVE_PRIVILEGES。它唯一最重要的功能是展开所有直接分配给的角色(有效地通过角色特权层次结构(,并返回所有这些分配
这种层次结构的"展开"在纯SQL中并不容易/高效,因此此系统视图将此特殊功能作为内置功能提供。

预定义的角色sap.hana.xs.lm.roles::Developer包含其他几个角色(如查询结果所示(
要进行双重检查,您甚至可以通过导航到sap.hana.xs.lm.roles包来查看HANA XS存储库中的角色定义,因为此角色是作为设计时工件提供的。

如果您实际上只想看到直接将角色/权限分配给用户(或角色(,则使用系统视图GRANTED_ROLESGRANTED_PRIVILEGES可以实现这一点。

最新更新