HANA错误-不允许用户授予选择权限

2020-08-24 10:50发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


在HANA中,我们偶尔会出现授权错误。 跟踪具有:不允许用户X授予表XXXX的特权SELECT

这类似于OSS注释2619013

跟踪中的用户是与运行视图的用户不同的用户。

据我所知,这是在对不同架构进行选择的视图中发生的,并且架构所有者是不同的。

例如,ID A在模式A上创建了一个视图。这对ID B拥有的模式B的表进行了选择。IDID C运行报告失败,因为ID A无权授予Select访问权限 到表B上。

问题是,使事件发生的事件组合是什么? 另外,此授权检查背后的逻辑是什么?

OSS注释提到将视图创建为存储库对象,但这在我们的情况下是不可能的。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


在HANA中,我们偶尔会出现授权错误。 跟踪具有:不允许用户X授予表XXXX的特权SELECT

这类似于OSS注释2619013

跟踪中的用户是与运行视图的用户不同的用户。

据我所知,这是在对不同架构进行选择的视图中发生的,并且架构所有者是不同的。

例如,ID A在模式A上创建了一个视图。这对ID B拥有的模式B的表进行了选择。IDID C运行报告失败,因为ID A无权授予Select访问权限 到表B上。

问题是,使事件发生的事件组合是什么? 另外,此授权检查背后的逻辑是什么?

OSS注释提到将视图创建为存储库对象,但这在我们的情况下是不可能的。

付费偷看设置
发送
1条回答
三十六小时_GS
1楼-- · 2020-08-24 11:15

问题是什么因素导致发生这种情况?

事实:

拥有目录对象时,该对象归创建者所有。 因此,方案B上的表归用户B拥有。

用户C在架构A下运行视图时,

1。系统检查用户是否有权访问架构A下的运行视图

2。运行视图

3。调用架构B上的表

4。检查用户A是否确实有权访问模式B下的表

5。如果用户没有访问权限,则会引发用户无法授予访问权限的错误。

一种解决方法是通过用户B向用户A和C授予对该表的选择访问权限。显然,更简单的方法是将存储库对象创建为系统(_SYS_REPO)而非用户拥有的表/架构。 >

在table.schemaB上为_SYS_REPO授予许可,带有授予选项
 要么
 授予table.schemaB上针对用户B和用户C的选择
 

您可以在尝试之前,将那些对象[从模式A的视图和从模式B的表]分配给用户C的对象特权。

让我知道这是否可行

谢谢

Jega

一周热门 更多>