在 SAP HANA 中,我尝试使用表类型作为输入参数来调用 StoredProcedure。
其他输入参数工作得很好。但一旦我使用表类型,我就会收到错误:
Failed to execute action: InternalError: dberror($.hdb.Connection.executeProcedure): 258 - SQL error, server error code: 258. insufficient privilege: Not authorized at /sapmnt/ld7272/a/HDB/jenkins_prod/workspace/8uyiojyvla/s/ptime/query/checker/query_check.cc:4003
如何修复/调试这个问题?
在索引服务器跟踪中是:
[19984]{315590}[100/100235487] 2018-08-22 10:07:13.949679 i TraceContext TraceContext.cpp(01028) : UserName=SAPDBCTRL, ApplicationUserName=SM_EFWK, ApplicationName=ABAP:AS2, ApplicationSource=CL_SQL_STATEMENT==============CP:304, Client=010, StatementHash=31c1e1f5ca72868a541d58fc5a77596b, EppRootContextId=0050560204981EE782C14A33A16BC68E, EppTransactionId=47BF1E2CEE9D05A0E005B7CF04FCF981, EppConnectionId=5B7C13CC22061B08E10000000A1807AF, EppConnectionCounter=1, EppComponentName=AS2/sapas2ci_AS2_01, EppAction=EFWK RESOURCE MANAGER
[19984]{315590}[100/100235487] 2018-08-22 10:07:13.949656 w SQLScriptExecuto se_eapi_proxy.cc(00144) : Error <exception 71000258: Not authorized
> in preparation of internal statement: delete from _SYS_STATISTICS.STATISTICS_PROPERTIES where key='internal.check.store_results'
[19984]{315590}[100/100235487] 2018-08-22 10:07:13.949904 e SQLScript trex_llvm.cc(00936) : Llang Runtime Error: Exception::SQLException258: insufficient privilege: Not authorized
at main (line 63) ("_SYS_STATISTICS"."SHARED_STORE_USED_VALUES": line 8 col 5 (at pos 456))
这看起来相当简单:
在客户端 SM_EFWK
中登录的
应用程序用户(使用 SAP NetWeaver 的人)
010
正在尝试从 SAP HANA 统计服务表 _SYS_STATISTICS.STATISTICS_PROPERTIES
中删除数据。
NetWeaver/ABAP 程序使用 辅助数据库 与数据库用户
SAPDBCTRL
连接。
抛出错误 Exception::SQLException258: insufficient privilege: Not authorized
,因为此 SAPDBCTRL
数据库用户没有 DELETE
分配给它的表的权限(既不是直接的,也不是通过架构或角色权限)。
如果 SQL 命令是 SAP 标准程序的一部分,那么我会检查推荐的设置是否已正确实施。 如果此命令来自自定义程序,您可能需要分配权限或使用不同的技术用户,因为
SAPDBCTRL
是不应修改的 SAP 标准用户。