实例: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. 源代码请自行下载 每日一道理 书籍好比一架梯子,它能引领人们登上 ...
随机推荐
- php 23种设计模式的趣味解释
http://wenku.baidu.com/link?url=GwvuvSOdJneZQc-DSKoGmPcxTtzn3cdtIp3fRaCNbkg1zJDZZZTx2NwEK5IsqU996fG3 ...
- Go语言Revel框架 环境搭建
1.首先参考连个链接 http://blog.csdn.net/creak_phone/article/details/12620969 http://www.geek521.com/?p=616 2 ...
- IMX51+WINCE6.0平台缩写意义
1.以EPIT为例 EPIT(Enhanced Periodic Interrupt Timer)为增强型周期中断定时器,其中有CR控制寄存器,要设置CR寄存器的SWR位,代码如下: // Asser ...
- WINCE6.0 error C2220: warning treated as error问题解决
今天在编译IMX515的BSP的时候,发现下面的编译错误问题: BUILD: [00:0000002476:PROGC ] BuildingCOMPILE Pass in F:\WINCE600\PL ...
- Codeforces Round #221 (Div. 2) C. Divisible by Seven(构造 大数除法 )
上几次的一道cf题. 题目:http://codeforces.com/contest/376/problem/C 性质: (4)a与b的和除以c的余数(a.b两数除以c在没有余数的情况下除外),等于 ...
- php 连接字符串. ZEND_ASSIGN_CONCAT/ZEND_CONCAT原理
0.php代码 <?php $a='abc'; $b='def'; $c='ghi';$d='jkl'; $a.=$b.$c.$d; 1.BNF范式(语法规则) expr_without_var ...
- SGU 326 Perspective ★(网络流经典构图の竞赛问题)
[题意]有n(<=20)只队伍比赛, 队伍i初始得分w[i], 剩余比赛场数r[i](包括与这n只队伍以外的队伍比赛), remain[i][j]表示队伍i与队伍j剩余比赛场数, 没有平局, 问 ...
- hdu 2844 Coins
Coins Time Limit: / MS (Java/Others) Memory Limit: / K (Java/Others) Total Submission(s): Accepted S ...
- Spring AOP--基于XML文件的配置
Spring AOP的配置可以基于注解,也可以基于XML文件.前面几篇都是使用注解的方式.下面介绍下使用XML文件如何配置 使用的测试类和切面类都类似.只需要属于AOP的注解去掉即可.下面是AOP的X ...
- [JS前端开发] js/jquery控制页面动态加载数据 滑动滚动条自动加载事件
页面滚动动态加载数据,页面下拉自动加载内容 相信很多人都见过瀑布流图片布局,那些图片是动态加载出来的,效果很好,对服务器的压力相对来说也小了很多 有手机的相信都见过这样的效果:进入qq空间,向下拉动空 ...