首页 > 解决方案 > SAP HANA 如何调试/修复“权限不足”错误

问题描述

在 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

如何修复/调试这个?

在 indexserver-trace 中是:

[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))

标签: permissionshana

解决方案


这似乎相当简单:

在客户端登录的应用程序用户(使用 SAP NetWeaver 的人)正在尝试从 SAP HANA 统计服务表中删除数据。 SM_EFWK010_SYS_STATISTICS.STATISTICS_PROPERTIES

NetWeaver/ABAP 程序使用与数据库用户的辅助数据库连接SAPDBCTRL。引发错误Exception::SQLException258: insufficient privilege: Not authorized,因为此SAPDBCTRL数据库用户没有DELETE分配给它的表的特权(既不是直接的,也不是通过模式或角色特权)。

如果 SQL 命令是 SAP 标准程序的一部分,那么我会检查推荐的设置是否已正确实施。如果此命令来自自定义程序,您可能希望分配权限或使用不同的技术用户,就像SAPDBCTRL不应修改的 SAP 标准用户一样。


推荐阅读