实例:ABAP权限对象设计与权限检查的实现(详细)
http://blog.sina.com.cn/s/blog_a87b19300102whnz.html
http://www.cnblogs.com/mingdashu/p/authority-check.html
学习总结,分享给大家,,,(有图有真像)
我在ECC里创建了一张表,随意插入了5条数据


创建权限对象,使分配这个权限的用户只能操作部门编号(edept)为 ‘10’ 的数据。
1. SU20,创建权限字段

2. SU21,创建权限对象
1.首先创建对象类,输入对象类名称(ZEM1)、文本(FOR TEST),点击“保存”
2.找到之前创建的对象类,可以鼠标右键创建权限对象


3. SU02,创建参数文件,输入相关信息 激活
对象输入:ZEMPOBJ00
权限输入:ZDEPT,并双击它新建一个权限

具体的权限值(点击“维护值”)

激活!
该授权对象 包含两个字段。可以在 第一个字段 EMPDEPT 中输入一 般值 ‘10’,第二个字段 ACTVT 中,在创建(01)、更改(02)和显示(03)之间进行选择,也就是
说,分配这个参数文件的用户,只能对 ‘10’ 部门的数据进行01、02、03操作。
也可以设置为“*”这样任何操作都可以通过。
到此,su01,进入‘参数文件’选项卡,添加参数文件:ZEMPRF00,保存后权限即可生效,对用户分配权限还可以通过创建role的方式,以下。
PS:有两种方式,创建role分配给用户,或者直接将参数文件分配给用户,role是从业务层面的维度来管理权限,但实质上的功能还是由profile 来完成的。 原来sap的权限是没有role这个概念的。全部是由profile/object 的方式来实现的,但这样的方式要求对权限底层的具体细节非常了解才行,严重影响的工作效率,而且不利于只懂业务的人进行权限管理和设计。 所以sap后来引入了role这样一个概念,试图通过自顶向下的方式让用户来管理权限。通过tcode pfcg 可以维护role。
4.创建role将权限分配给用户
1.PFCG 创建角色:ZEMPR00,输入描述文本,点击创建,点击“权限”选项卡,参数文件名称:点击(系统建议的),点‘更改授权数据’->‘手动,
输入授权对象:ZEMPOBJ00,回车,保存
然后指定权限的值

2.进入‘用户’选项卡,输入用户名为自己的用户名;记得‘用户比较'(用户比较,完成权限修改后与用户的权限保持一致)
到此为止,权限的设计全部完成,下面我们通过ABAP来验证权限的有效性。

权限列表中有两个权限,一个是系统通过创建role生成的,一个是我们手动创建的。
5. 创建ABAP程序,来验证权限对象的有效性
REPORT ZHAIM_TEST01 NO STANDARD PAGE HEADING. TABLES ZEMP_TEST. DATA: IT_ZEMP TYPE STANDARD TABLE OF ZEMP_TEST,
IW_ZEMP TYPE ZEMP_TEST. PARAMETERS P_DEPT TYPE ZEMP_TEST-EDEPT. START-OF-SELECTION. AUTHORITY-CHECK OBJECT 'ZEMPOBJ00'
ID 'ZEMPDEPT' FIELD P_DEPT
ID 'ACTVT' FIELD ''.
"用户使用程序,想要查询部门的员工信息,
"通过authority-check object 来进行权限检查,ID是字段名,field是要检查的
"'actvt': 01 创建,02更改,03查询,06删除
IF SY-SUBRC <> .
MESSAGE S001() WITH '您没有权限查看此数据' DISPLAY LIKE 'E'.
ELSE. SELECT *
FROM ZEMP_TEST
INTO TABLE IT_ZEMP
WHERE EDEPT = P_DEPT. LOOP AT IT_ZEMP INTO IW_ZEMP. WRITE / IW_ZEMP. ENDLOOP. ENDIF.
输入20

执行结果:

输入10

执行结果

如果存在删除操作,在删除前,检查用户的权限,可以将actvt的值改为06进行测试。
actvt的所有值储存在表TACT中。
----------------------------------------
| ACTVT|LTEXT |
----------------------------------------
| 01 |创建或生成 |
| 02 |更改 |
| 03 |显示 |
| 04 |打印、编辑消息 |
| 05 |锁定 |
| 06 |删除 |
| 07 |激活,生成 |
| 08 |Display change documents |
| 09 |显示价格 |
| 10 |过帐 |
| 11 |修改数值范围状态 |
| 12 |维护并生成修改文档 |
| 13 |初始化数量级别 |
| 14 |字段选择: 生成屏幕 |
| 15 |字段选择: 赋值表 |
| 16 |执行 |
| 17 |维护编号范围对象 |
| 18 |从 coll. 程序交货 |
| 19 |coll. proc 的发票 |
| 20 |无翻译传输 |
| 21 |传输 |
| 22 |输入,包括, 分配 |
| 23 |维护 |
| 24 |归档 |
| 25 |Reload |
| 26 |修改客户帐号组 |
| 27 |Display totals records |
| 28 |显示行项目 |
| 29 |显示存储数据 |
| 30 |决定 |
| 31 |确认 |
| 32 |保存 |
| 33 |读 |
| 34 |写 |
| 35 |输出 |
| 36 |扩展维护 |
| 37 |接受 |
| 38 |完成 |
| 39 |检查 |
| 40 |在 DB 中创建 |
| 41 |在 DB 中删除 |
| 42 |转换到 DB |
| 43 |释放 |
| 44 |标记 |
| 45 |允许 |
| 46 |Merge |
| 47 |借位 |
| 48 |模拟 |
| 49 |请求 |
| 50 |移动 |
| 51 |Initialize |
| 52 |修改应用程序开始 |
| 53 |显示应用开始 |
| 54 |显示应用档案 |
| 55 |修改应用程序归档 |
| 56 |显示档案 |
| 57 |保存档案 |
| 58 |显示接管 |
| 59 |分配 |
| 60 |输入 |
| 61 |输出 |
| 62 |创建自动分帐目 |
| 63 |激活 |
| 64 |生成 |
| 65 |重新组织 |
| 66 |刷新 |
| 67 |翻译 |
| 68 |模块 |
| 69 |放弃 |
| 70 |管理员 |
| 71 |分析 |
| 72 |计划 |
| 73 |Execute Digital Signature |
| 74 |撤回批准 |
| 75 |移去 |
| 76 |输入 |
| 77 |预输入 |
| 78 |分配 |
| 79 |Assign Role to Composite Role |
| 80 |Print |
| 81 |调度 |
| 82 |补充 |
| 83 |对方确认 |
| 84 |结算 |
| 85 |转换 |
| 86 |Rebook |
| 87 |返回 |
| 88 |完成 |
| 89 |Subscribe |
| 90 |复制 |
| 91 |重新激活 |
| 92 |Create from Template |
| 93 |计算 |
| 94 |Override |
| 95 |解锁 |
| 96 |Reject |
| 97 |设置 |
| 98 |下达标记 |
| 99 |生成发票清单 |
| A1 |Accrue |
| A2 |工资 |
| A3 |修改状态 |
| A4 |重新提交 |
| A5 |显示报表 |
| A6 |用筛选器读取 |
| A7 |用筛选器写入 |
| A8 |处理大量数据 |
| A9 |发送 |
| AA |Print Again |
| AB |结算 |
| B1 |显示许可值 |
| B2 |技术性完成 |
| B3 |导出 |
| B8 |再次执行 |
| B9 |Post Parked Document |
| BD |维护对象在非属主系统 |
| BE |IMG 项目 |
| C1 |支付卡维护 |
| C2 |支付卡显示 |
| C3 |手工权限维护 |
| C4 |Develope Payment Card |
| C5 |Reopen |
| C8 |确认更改 |
| D1 |复制 |
| DL |下载 |
| DP |删除计划 |
| E0 |保存摘录 |
| E6 |删除自有摘录 |
| E7 |删除文本摘录 |
| EP |Prioritise extract |
| FP |修改客户自动选项 |
| G1 |Maintain Budget |
| G2 |Billing |
| G3 |Maintain Overhead Costs |
| G4 |Maintain Reevaluation |
| G5 |Park |
| G6 |Transfer Budget |
| G7 |Reverse |
| GL |一般总览 |
| H1 |Deactivate |
| H2 |Activate Logging |
| H3 |Deactivate Logging |
| KA |激活布告 |
| KI |Knock In |
| KO |Knock Out |
| KS |冲销布告 |
| KU |Give notice |
| L0 |All functions |
| L1 |函数范围级 1 |
| L2 |函数范围级 2 |
| LM |Change LDAP Mapping |
| LS |Change LDAP Sync. Switch |
| MA |Deactivate mod.assistant |
| P0 |Accept CCMS CSM data |
| P1 |Edit CCMS CSM data |
| P2 |Maintain CCMS CSM methods |
| P3 |Register CCMS CSM remote systm|
| PA |Open period |
| PB |Close period |
| PC |Open Consolid. Grp Processing |
| PD |Close Consolid. Unit Processng|
| PP |Set as productive |
| PU |Publish |
| RS |Send to New Recipient |
| S1 |编辑模板 |
| S2 |Edit specification |
| SO |Edit in Sourcing |
| SZ |Assign Switch Framework Switch|
| U2 |比较业务量 |
| U3 |更改业务量比较 |
| U4 |添加业务量数据 |
| UL |上载 |
| V1 |Create version |
| V2 |Change Version |
| V3 |Display Version |
| V4 |Delete Version |
| V5 |Transport Version |
| V6 |Delete Version Header |
| VE |Create an Enhancement ID |
| VF |Expired |
----------------------------------------
PS: AUTHORITY-CHECK OBJECT 'ZEMPOBJ00'
ID 'ZEMPDEPT' FIELD P_DEPT
ID 'ACTVT' FIELD '03'.
sy-subrc 一些重要返回值如下:
0: 用户权限检查通过.
4: 用户权限不足.
8: 参数的数量不正确.
12: 权限对象不存在.
实例:ABAP权限对象设计与权限检查的实现(详细)的更多相关文章
- ABAP权限检查,TCode与权限对象进行关联
一.确认权限对象,和关联字段: Tcode:SU21 维护权限对象例如"M_MSEG_WMB",它关联字段为'WERKS'M_MSEG_WMB 物料凭证:工厂 二.在ABAP代码中 ...
- ABAP的权限检查跟踪(Authorization trace)工具
事务码 STAUTHTRACE 1. 点击"Activate Trace" button激活跟踪: 可以看到跟踪状态已经处于打开状态. 在同一个application server ...
- 如何为ABAP程序添加权限检查
一.确认权限对象,及其关联字段: TCode: SU21 例如权限对象"M_MSEG_WMB",它关联字段为"WERKS",详见下图: 二.在ABAP代码中添加 ...
- 巨蟒django之权限6: 权限控制表设计&&登录权限
1.权限控制表设计 内容 . 什么是权限? . 为什么要有权限? 不同用户拥有不同的功能 . 在web开发中,什么是权限? url 代表 权限 . 开发一个权限的组件,为什么要开发组件? . 表结构的 ...
- [Django]用户权限学习系列之设计自有权限管理系统设计思路
若在阅读本片文章遇到权限操作问题,请查看本系列的前两章! http://www.cnblogs.com/CQ-LQJ/p/5609690.html和http://www.cnblogs.com/CQ- ...
- Android 开发技巧 - Android 6.0 以上权限大坑和权限检查基类封装
简单介绍 关于运行时权限的说法,早在Google发布android 6.0的时候,大家也听得蛮多的.从用户的角度来讲,用户是受益方,更好的保护用户的意思,而对于开发者来说,无疑增加了工作量. 对于6. ...
- MVC用户登陆验证及权限检查(Form认证)
1.配置Web.conf,使用Form认证方式 <system.web> <authentication mode="None" /> ...
- ylbtech-权限管理-数据库设计-功能权限管理技术
ylbtech-DatabaseDesgin:ylbtech-权限管理-数据库设计-功能权限管理技术 DatabaseName:ylb_permission(权限管理-功能权限管理技术)实现 Type ...
- 权限检查联系人ProfileProvider
每日一贴,今天的内容关键字为权限检查 ProfileProvider继承自AbstractContyactsProvider. 源代码请自行下载 每日一道理 书籍好比一架梯子,它能引领人们登上 ...
随机推荐
- Java API ——Scanner类
1.Scanner类概述 JDK5以后用于获取用户的键盘输入,一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器.Scanner 使用分隔符模式将其输入分解为标记,默认情况下该分隔符模式与空 ...
- python学习笔记三--字典的使用
一.基本使用: 1. 赋值:{key:value} 1.1 与列表相同处:会改变索引(键)相关联的值的改变 1.2 与列表不同处:不用考虑值的长度,而列表是有序的需要考虑末尾偏移量,超过末尾偏移量的会 ...
- 函数buf_ptr_get_fsp_addr
#define FIL_PAGE_ARCH_LOG_NO_OR_SPACE_ID 34 /****************************************************** ...
- Google 多源码管理工具 gclient
google的chromium项目是用gclient来管理源码的checkout, update等. gclient是google专门为这种多源项目编写的脚本,它可以将多个源码管理系统中的代码放在一起 ...
- I.MX6 U-boot Kernel backlight setting
/********************************************************************* * I.MX6 U-boot Kernel backlig ...
- 【聚类算法】谱聚类(Spectral Clustering)
目录: 1.问题描述 2.问题转化 3.划分准则 4.总结 1.问题描述 谱聚类(Spectral Clustering, SC)是一种基于图论的聚类方法——将带权无向图划分为两个或两个以上的最优子图 ...
- Java操作Hbase进行建表、删表以及对数据进行增删改查,条件查询
1.搭建环境 新建JAVA项目,添加的包有: 有关Hadoop的hadoop-core-0.20.204.0.jar 有关Hbase的hbase-0.90.4.jar.hbase-0.90.4-tes ...
- Java HashMap存储问题
public static boolean isIsomorphic(String s, String t) { Map map1 = new HashMap<>(); Map map2 ...
- SSDT Hook结构
目录 SSDT Hook效果图 SSDT简介 SSDT结构 SSDT HOOK原理 Hook前准备 如何获得SSDT中函数的地址呢 SSDT Hook流程 SSDT Hook实现进程保护 Ring3与 ...
- ubuntu 常用软件配置
1. 首先重装系统后需要执行: sudo apt-get install update 2. 然后安装必要的软件: terminator, vim, git,