我可以通过SAP RFC以用户"foo"的身份使用密码"bar"从我的机器连接到SAP服务器。 可以通过SAP RFC进行内省吗?我想知道用户"foo"可以执行哪些方法。我正在使用 PyRFC,但 AFAIK 这对这个问题来说无关紧要。
根据用户Suncatcher的说法,它不是开箱即用的。
到目前为止,我的SAP知识有限。但是,像这种伪代码一样循环是不可能的吗?(此代码应在SAP内部运行(作为ABAP(,并且可以通过RFC公开(
user = 'foo'
allowed_methods = [] # empty list
for func in get_all_functions_which_are_exported_via_rfc():
if not check_if_user_has_permission_to_call_rfc_function(func, user):
# not allowed
continue
# user is allowed
allowed_methods.append(func)
return allowed_methods
就我想知道允许用户"foo"执行哪些方法。
SAP 授权概念而言,没有方法这样的实体,因此无法列出允许的方法。
您只能从表AGR_USERS
中获取为用户分配的角色列表(如果您有权:)读取它,然后尝试确定允许您调用哪些功能模块、tcode 和程序。当我们谈论RFC时,我假设您对功能模块感兴趣。 但是,检测所有可用的支持 RFC 的 FM 需要单独且不是非常简单的开发。
所以答案是否定的。您不能开箱即用地列出它们。