Abap t每个部门和用户的代码

Abap t每个部门和用户的代码,abap,sap-basis,Abap,Sap Basis,我有一个奇怪的要求。他们需要一份报告,在报告中给出一个或多个tcode,程序将检查哪个部门有这个/这些以及哪些用户 好的,我找到了两个表,比如AGR_TCODES(将角色分配给TCODES)、AGR_USERS(将角色分配给用户)和USER_ADDR(按地址数据分配的用户)来查找我想要的内容 我的问题是:如果用户有权访问一个不属于其角色的tcode,我们如何捕获它 例如:我有权访问VA03,但我的任何角色都未连接到此tcode 有什么方法可以捕捉到这一点吗?尝试事务S_BCE\u 6800139

我有一个奇怪的要求。他们需要一份报告,在报告中给出一个或多个tcode,程序将检查哪个部门有这个/这些以及哪些用户

好的,我找到了两个表,比如AGR_TCODES(将角色分配给TCODES)、AGR_USERS(将角色分配给用户)和USER_ADDR(按地址数据分配的用户)来查找我想要的内容

我的问题是:如果用户有权访问一个不属于其角色的tcode,我们如何捕获它

例如:我有权访问VA03,但我的任何角色都未连接到此tcode


有什么方法可以捕捉到这一点吗?

尝试事务
S_BCE\u 68001397
(用户根据权限值进行选择),选择权限对象
S_TCODE
,作为权限值的事务将为您提供所需的列表。事务
S_BCE\u 68001398
执行相同的操作,但不允许您向用户查询其他权限对象


这些报告的问题在于,检查大量事务代码可能很困难或繁琐。您可以查看这些事务的源代码,report
RSUSR002
,并查看是否可以使用报表用于查询多个事务代码的本地定义类,以及根据您的特定要求创建报表。

尝试transaction
S_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下可以访问