我可以通过SAP-RFC将用户名为"foo"的密码"bar"从我的机器连接到SAP服务器.是否可以通过SAP-RFC进行内省?nI想知道允许用户"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
Run Code Online (Sandbox Code Playgroud)
我想知道允许用户“foo”执行哪些方法。
SAP 授权概念中不存在方法这样的实体,因此您无法列出允许的方法。
您只能从表中获取为您的用户分配的角色列表AGR_USERS
(如果您有权限读取它:),然后尝试确定您可以调用哪些功能模块、tcode、程序。当我们谈论 RFC 时,我假设您对功能模块感兴趣。但检测所有可用的支持 RFC 的 FM 需要单独且不是很简单的开发。
所以答案是否定的。您无法立即列出它们。