Abap t每个部门和用户的代码
我有一个奇怪的要求。他们需要一份报告,在报告中给出一个或多个tcode,程序将检查哪个部门有这个/这些以及哪些用户 好的,我找到了两个表,比如AGR_TCODES(将角色分配给TCODES)、AGR_USERS(将角色分配给用户)和USER_ADDR(按地址数据分配的用户)来查找我想要的内容 我的问题是:如果用户有权访问一个不属于其角色的tcode,我们如何捕获它 例如:我有权访问VA03,但我的任何角色都未连接到此tcodeAbap t每个部门和用户的代码,abap,sap-basis,Abap,Sap Basis,我有一个奇怪的要求。他们需要一份报告,在报告中给出一个或多个tcode,程序将检查哪个部门有这个/这些以及哪些用户 好的,我找到了两个表,比如AGR_TCODES(将角色分配给TCODES)、AGR_USERS(将角色分配给用户)和USER_ADDR(按地址数据分配的用户)来查找我想要的内容 我的问题是:如果用户有权访问一个不属于其角色的tcode,我们如何捕获它 例如:我有权访问VA03,但我的任何角色都未连接到此tcode 有什么方法可以捕捉到这一点吗?尝试事务S_BCE\u 6800139
有什么方法可以捕捉到这一点吗?尝试事务
S_BCE\u 68001397
(用户根据权限值进行选择),选择权限对象S_TCODE
,作为权限值的事务将为您提供所需的列表。事务S_BCE\u 68001398
执行相同的操作,但不允许您向用户查询其他权限对象
这些报告的问题在于,检查大量事务代码可能很困难或繁琐。您可以查看这些事务的源代码,report
RSUSR002
,并查看是否可以使用报表用于查询多个事务代码的本地定义类,以及根据您的特定要求创建报表。尝试transactionS_BCE_68001397
(用户选择基于权限值),选择权限对象S\u TCODE
,作为权限值的事务将为您提供所需的列表。事务S_BCE\u 68001398
执行相同的操作,但不允许您向用户查询其他权限对象
这些报告的问题在于,检查大量事务代码可能很困难或繁琐。您可以查看这些事务的源代码,报告
RSUSR002
,看看您是否可以使用这些报告用于查询多个事务代码的本地定义类,并根据您的具体要求创建一个报告。Yoy可以使用表AGR_1251和AGR_用户
AGR_1251将为您提供具有S_TCODE对象的角色以及用户给定的值=TCODE
然后转到表AGR\U USERS,并使用S\U TCODE=TCODE获取角色的用户
SELECT adr_users~UNAME
FROM AGR_USERS JOIN AGR_1251 ON AGR_USERS~MANDT = AGR_1251~MANDT
and AGR_USERS~AGR_NAME = AGR_1251~AGR_NAME
WHERE AGR_1251~OBJECT = 'S_TCODE'
AND AGR_1251~LOW = param_tcode.
希望这有助于您使用AGR_1251表和AGR_用户 AGR_1251将为您提供具有S_TCODE对象的角色以及用户给定的值=TCODE 然后转到表AGR\U USERS,并使用S\U TCODE=TCODE获取角色的用户
SELECT adr_users~UNAME
FROM AGR_USERS JOIN AGR_1251 ON AGR_USERS~MANDT = AGR_1251~MANDT
and AGR_USERS~AGR_NAME = AGR_1251~AGR_NAME
WHERE AGR_1251~OBJECT = 'S_TCODE'
AND AGR_1251~LOW = param_tcode.
希望这有帮助在德克·特里尔斯贝克的帮助下,我终于找到了我所寻找的解决方案。以下是选择:
SELECT DISTINCT a~von e~ttext d~department d~bname d~name_first
d~name_last d~name_textc c~profile
INTO CORRESPONDING FIELDS OF TABLE gt_tcode_per_dprtm_usr
FROM ust12 AS a
INNER JOIN ust10s AS b
ON a~auth = b~auth AND
a~objct = b~objct AND
a~aktps = b~aktps
INNER JOIN ust04 AS c
ON b~profn = c~profile
INNER JOIN user_addr AS d
ON c~bname = d~bname
INNER JOIN tstct AS e
ON e~tcode = a~von
WHERE a~objct = 'S_TCODE' AND
a~von IN so_tcode AND
e~sprsl = 'G'.
我要感谢你们所有人的回答。最后,在德克·特里尔斯贝克的帮助下,我找到了我所寻找的解决方案。以下是选择:
SELECT DISTINCT a~von e~ttext d~department d~bname d~name_first
d~name_last d~name_textc c~profile
INTO CORRESPONDING FIELDS OF TABLE gt_tcode_per_dprtm_usr
FROM ust12 AS a
INNER JOIN ust10s AS b
ON a~auth = b~auth AND
a~objct = b~objct AND
a~aktps = b~aktps
INNER JOIN ust04 AS c
ON b~profn = c~profile
INNER JOIN user_addr AS d
ON c~bname = d~bname
INNER JOIN tstct AS e
ON e~tcode = a~von
WHERE a~objct = 'S_TCODE' AND
a~von IN so_tcode AND
e~sprsl = 'G'.
我想感谢大家的回答。S_BCE_68001398也特别适用于事务级访问。这些TCODE在SUIM下可以访问,我想S_BCE_68001398也特别适用于事务级访问。我想这些TCODE在SUIM下可以访问