点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好 我创建了以下目录...
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好 我创建了以下目录...
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
你好
我创建了以下目录过程:
创建过程XXXXXXXX(在GGGGMM整数中,在ID_IZPILDES_LAIKS整数中) 语言SQLSCRIPT AS 开始 插入YYYYYYYY(ID_IZPILDES_LAIKS,ID_NODOKLMAKS,GADS_MENESIS,ID_KRITERIJS,VERTIBA) SELECT:ID_IZPILDES_LAIKS, NM_ID, :GGGGMM * 100 +1 AS GADS_MENESIS, KRIT_ID, SUM(KRIT_VERTIBA) FROM" _SYS_BIC"。" ZZZZ/BBBB"(PLACEHOLDER。" $$ PERIODS $$" =>:GGGGMM) GROUP BY GADS_MENESIS,KRIT_ID,NM_ID; 结束;
如您所见,过程使用计算视图。 我可以将其称为过程的创建者/所有者,但是不能将此过程的 EXECUTE 权限授予其他用户。 我得到的错误看起来像这样:
特权不足:未获得授予该过程特权的权限
即使我授予整个架构的 EXECUTE 权限,用户仍然无法调用该过程。 他遇到错误:
权限不足:未经授权
其他用户可以查询计算视图,甚至可以在表上执行 INSERT 语句。 但是,当我将 INSERT 语句放入过程中时,我无法授予权限和/或以其他用户身份执行它。
是因为计算视图吗? 我会错过某些特权吗?
我还在一个软件包中创建了一个存储过程,此问题已解决,但我想知道它不起作用的原因。 此过程与我使用的其他过程之间的唯一区别是,它使用的是计算视图,而不是常规的表/视图。 这是唯一的方法吗?
这是由于对象激活在SAP HANA中的工作方式所致。
内部用户_SYS_REPO创建存储库工件的运行时版本。 然后,这些对象归_SYS_REPO所有。
为了向任何用户提供访问权限,_SYS_REPO将这些特权授予激活对象的用户以及所有角色对象。 _SYS_REPO要求具有GRANT OPTION的特权才能执行激活和进一步的特权授予,但它不会授予GRANT OPTION的那些特权。
底线:您的用户可以选择计算视图,但不能将特权授予其他人(运行过程所需)。
当_SYS_REPO激活该过程时,该问题消失了,因为该用户具有WITH GRANT OPTION特权。
这是无论如何开发程序的推荐方法。
如果您绝对想将GRANT OPTION的特权强制给其他用户,那也是可能的。 在我的博客文章此处。
一周热门 更多>