权限相关代码-表

常规权限检查

复制代码
PARAMETERS carr TYPE spfli-carrid. 

AT SELECTION-SCREEN. 
  AUTHORITY-CHECK OBJECT 'S_CARRID' 
    ID 'CARRID' FIELD carr 
    ID 'ACTVT'  FIELD '03'. 

  IF sy-subrc <> 0. 
    MESSAGE 'No authorization' TYPE 'E'. 
  ENDIF. 

|----------|--------------------------------------------------------------------------|
| sy-subrc | Meaning |
| 0 | 授权成功或未进行检查。在用户主数据记录中找到了该授权对象的授权。其值集包含指定的值。 |
| 4 | 授权检查未成功。在用户主数据记录中找到了该授权对象的一个或多个授权,且这些授权包含值集,但未包含指定的值,或者指定了不正确的授权字段或字段过多。 |
| 12 | 在用户主数据记录中未找到该授权对象的授权。 |
| 24 | 此返回码已不再使用。 |
| 40 | 在用户中指定了无效的用户 ID。 |

FOR USER user

复制代码
AUTHORITY-CHECK OBJECT 'S_CARRID' FOR USER  SY-UNAME
         ID 'CARRID' FIELD '__________'
         ID 'ACTVT' FIELD '__________'.
IF sy-subrc <> 0.
* Implement a suitable exception handling here
ENDIF.

指定的授权对象列出至少一个且最多 10 个不同的授权字段

如果用户主数据记录中为该授权对象创建了一个或多个授权,并且对于其中至少一个授权,其使用 ID 指定的授权字段所定义的每个值集都包含待检查的值 val1 ... val10,则授权检查成功。未包含在语句中或其值被指定为 DUMMY 的授权字段将不进行检查。如果检查成功,sy-subrc 将被设置为 0。否则,它将被设置为一个不等于 0 的值

复制代码
AUTHORITY-CHECK OBJECT 'S_CARRID'
         ID 'CARRID' FIELD '__________'
         ID 'ACTVT' DUMMY.
IF sy-subrc <> 0.
* Implement a suitable exception handling here
ENDIF.

相关后台表

|-----------|-------------------|
| 表 | 表描述 |
| USER_ADDR | 依据地址数据的用户 |
| TOBJ | 权限对象表 |
| TACT | 可保护的活动(活动字段ACTVT) |
| TACTT | TACT的文本表 |
| TACTZ | 每个授权对象的有效作业 |
| AGR_1251 | 活动组的权限数据 |
| AGR_USERS | 分配角色到用户 |
| AGR_TEXTS | 用于层次菜单的文件结构-客户 |

相关事务码

|----------------|-----------------------------|
| 事务码 | 描述 |
| S_BCE_68001432 | 比较权限(可以比较用户,角色,参数文件,权限对象) |
| STAUTHTRACE | 权限跟踪(跟踪时间段、指定的用户) |
| SU02 | 维护权限参数文件(可以传输) |
| SU20 | 维护权限字段 |
| SU20_BTCH | 维护权限字段 |
| SU21 | 维护权限对象 |
| SU22/SU24 | 维护权限缺省值(非代码方式给函数,事务码关联权限对象) |
| SU22_OLD | 事务中权限对象的用法 |
| SU53 | 评估权限检查(可以捕获缺失的权限) |
| PFCG | 角色维护 |

相关推荐
snow@li1 分钟前
数据库:B+ 树 / 数据库索引的底层支柱
数据库
梦想的旅途216 分钟前
企业微信二次开发实战:基于RPA接口的私域中台架构设计与选型指南
数据库·企业微信·rpa
许彰午35 分钟前
87_Python Django模型与数据库
数据库·python·django
—Miss. Z—1 小时前
计算机二级MySQL选择题考点Ⅱ
数据库·mysql·oracle
敖行客 Allthinker1 小时前
IM 融合专题:后端架构师的核心修炼
java·开发语言·数据库
翔云1234561 小时前
MySQL 中 CURRENT_TIMESTAMP 到底取的是 INSERT 时间,还是 COMMIT 时间?
数据库·mysql
矜持的左手1 小时前
硬件故障后数据文件大小不对故障处理—Oracle碎片扫描恢复
数据库·oracle
欢呼的太阳9 小时前
数据库设计Step by Step (10)——范式化
服务器·数据库·oracle
喜欢的名字被抢了10 小时前
MySQL基础入门:从零理解数据库与SQL
数据库·mysql·教程
Elastic 中国社区官方博客11 小时前
如何比较两个 Elasticsearch 索引并找出缺失的文档
大数据·运维·数据库·elasticsearch·搜索引擎