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

为什么在HANA数据库中创建用户时显示甚至未分配的其他角色?,hana,Hana,我是HANA数据库的新手。我只是想通过Eclipse系统编辑器在HANA DB中创建新用户。我只选择了以下角色作为用户创建的一部分 sap.hana.xs.lm.roles::Developer 但是,由于执行查询从“PUBLIC”中选择角色名称,“EFFECTIVE_roles”,其中USER_name='TEST_USER',它将显示以下角色 角色名称 公开 sap.hana.xs.lm.roles::Developer sap.hana.ui.db::SITE\u用户 sap.hana.x

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

sap.hana.xs.lm.roles::Developer

但是,由于执行查询从“PUBLIC”中选择角色名称,“EFFECTIVE_roles”,其中USER_name='TEST_USER',它将显示以下角色

角色名称

公开

sap.hana.xs.lm.roles::Developer

sap.hana.ui.db::SITE\u用户

sap.hana.xs.lm.roles::Display

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


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

SAP HANA中的角色是特权的集合其他角色。 这可能导致一个角色包含多个其他角色的情况,每个角色都可以包含其他角色和权限。这样,您就可以为用户帐户分配直接和间接的角色和权限

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

预定义的角色
sap.hana.xs.lm.roles::Developer
包含几个其他角色(如查询结果所示)。
要仔细检查,您甚至可以通过导航到
sap.HANA.XS.lm.roles
包来查看HANA XS存储库中的角色定义,因为此角色是作为设计时人工制品交付的

如果您实际上只想查看直接将角色/权限分配给用户(或角色),则使用系统视图
授予的\u角色
授予的\u权限
将为您提供此功能