关键字" SQL安全性"是否按预期工作?

2020-09-28 02:47发布

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

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


大家好,

这是我第一次在这里提出问题,请保持温柔。 :)

我编写了一个存储过程,该过程允许某些用户使用来自远程源(SDA)的数据在本地模式中创建虚拟表。

很明显,我不希望用户成为这些表的所有者,这就是为什么存储过程已放置到位的原因。 这些表的创建按预期工作,创建的表的所有者是_SYS_REPO,这就是我们想要的样子。

用户还需要删除这些表的可能性。 因此,我为他们提供了另一个存储过程,该存储过程删除了上述表。 在调用该过程时,用户会收到"权限不足"消息。 该过程中的" SQL SECURITY"选项设置为" DEFINER"。 据我了解,这意味着在调用过程时,应该检查过程所有者(_SYS_REPO)的特权,对吗?

有趣的是,事实并非如此。 当我用" SYSTEM"用户调用该过程时,一切正常。 当我与用户一起调用该过程时,该用户仅具有调用所述过程的特权,我得到了特权不足错误。

_SYS_REPO拥有所述架构的所有特权。

有人遇到过类似的问题吗? 您可以在系统上重新创建此错误吗? 这是错误还是我错过了什么?

亲切问候


路卡






(7.6 kB)

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

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


大家好,

这是我第一次在这里提出问题,请保持温柔。 :)

我编写了一个存储过程,该过程允许某些用户使用来自远程源(SDA)的数据在本地模式中创建虚拟表。

很明显,我不希望用户成为这些表的所有者,这就是为什么存储过程已放置到位的原因。 这些表的创建按预期工作,创建的表的所有者是_SYS_REPO,这就是我们想要的样子。

用户还需要删除这些表的可能性。 因此,我为他们提供了另一个存储过程,该存储过程删除了上述表。 在调用该过程时,用户会收到"权限不足"消息。 该过程中的" SQL SECURITY"选项设置为" DEFINER"。 据我了解,这意味着在调用过程时,应该检查过程所有者(_SYS_REPO)的特权,对吗?

有趣的是,事实并非如此。 当我用" SYSTEM"用户调用该过程时,一切正常。 当我与用户一起调用该过程时,该用户仅具有调用所述过程的特权,我得到了特权不足错误。

_SYS_REPO拥有所述架构的所有特权。

有人遇到过类似的问题吗? 您可以在系统上重新创建此错误吗? 这是错误还是我错过了什么?

亲切问候


路卡






(7.6 kB)
付费偷看设置
发送
2条回答
CJones
1楼-- · 2020-09-28 03:29

SQL安全定义程序意味着该过程将以定义者的权限执行(对于HANA存储库过程_SYS_REPO)。

但是,仍然想要执行该过程的用户仍需要特权来执行该过程("仅"对过程主体中的语句所要求的检查是针对定义者完成的。)

关于,
弗洛里安

huskylover
2楼-- · 2020-09-28 03:29

您已经完成了授权跟踪。 如果这样做,您应该会看到详细的问题。

一周热门 更多>