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权限对象设计与权限检查的实现(详细)的更多相关文章

  1. ABAP权限检查,TCode与权限对象进行关联

    一.确认权限对象,和关联字段: Tcode:SU21 维护权限对象例如"M_MSEG_WMB",它关联字段为'WERKS'M_MSEG_WMB 物料凭证:工厂 二.在ABAP代码中 ...

  2. ABAP的权限检查跟踪(Authorization trace)工具

    事务码 STAUTHTRACE 1. 点击"Activate Trace" button激活跟踪: 可以看到跟踪状态已经处于打开状态. 在同一个application server ...

  3. 如何为ABAP程序添加权限检查

    一.确认权限对象,及其关联字段: TCode: SU21 例如权限对象"M_MSEG_WMB",它关联字段为"WERKS",详见下图: 二.在ABAP代码中添加 ...

  4. 巨蟒django之权限6: 权限控制表设计&&登录权限

    1.权限控制表设计 内容 . 什么是权限? . 为什么要有权限? 不同用户拥有不同的功能 . 在web开发中,什么是权限? url 代表 权限 . 开发一个权限的组件,为什么要开发组件? . 表结构的 ...

  5. [Django]用户权限学习系列之设计自有权限管理系统设计思路

    若在阅读本片文章遇到权限操作问题,请查看本系列的前两章! http://www.cnblogs.com/CQ-LQJ/p/5609690.html和http://www.cnblogs.com/CQ- ...

  6. Android 开发技巧 - Android 6.0 以上权限大坑和权限检查基类封装

    简单介绍 关于运行时权限的说法,早在Google发布android 6.0的时候,大家也听得蛮多的.从用户的角度来讲,用户是受益方,更好的保护用户的意思,而对于开发者来说,无疑增加了工作量. 对于6. ...

  7. MVC用户登陆验证及权限检查(Form认证)

    1.配置Web.conf,使用Form认证方式   <system.web>     <authentication mode="None" />      ...

  8. ylbtech-权限管理-数据库设计-功能权限管理技术

    ylbtech-DatabaseDesgin:ylbtech-权限管理-数据库设计-功能权限管理技术 DatabaseName:ylb_permission(权限管理-功能权限管理技术)实现 Type ...

  9. 权限检查联系人ProfileProvider

    每日一贴,今天的内容关键字为权限检查 ProfileProvider继承自AbstractContyactsProvider. 源代码请自行下载     每日一道理 书籍好比一架梯子,它能引领人们登上 ...

随机推荐

  1. CentOS 命令随笔

     linux下敲命令时:快速删除当前行已经敲的命令: CTR+U  或者 CTR+/                         快速删除当前行刚输入接近鼠标当前位置的单词:CTR+W 以上在XS ...

  2. Nandflash 驱动移植

    前段时间,研究了一下4G的Nandflash驱动.手头上只有飞凌6410BSP自带的Nandflash驱动,该驱动不支持K9GAG08U0D(2G)和K9LBG08U0D(4G)的Nandflash. ...

  3. 【HDOJ】4351 Digital root

    digital root = n==0 ? 0 : n%9==0 ? 9:n%9;可以简单证明一下n = a0*n^0 + a1*n^1 + ... + ak * n^kn%9 = a0+a1+..+ ...

  4. poj3321Apple Tree(树状数组)

    http://poj.org/problem?id=3321 刚一看题以为要建一颗树 看了下讨论说dfs 这里dfs遍历时设的标号很好 一个low一个high 包含了以这一节点为根节点的子树结点的所有 ...

  5. centos 如何用 rsyslog 搭建本地日志服务

    一.问题背景 最近项目遇到一个问题,服务器响应很慢,team中的两个有经验的工程师找了一台服务器分析了一下,发现问题出在磁盘写入过于频繁.这里大概介绍一下背景,我们的服务器上面主要是跑各种PHP接口, ...

  6. 第二部分 overlay 架构初探

    1 overlay可能支持的颜色格式/* possible overlay formats可能支持的颜色格式 */enum {    OVERLAY_FORMAT_RGBA_8888    = HAL ...

  7. Innodb引擎 long semaphore waits

    上一篇介绍了因为子表过多,导致innodb crash的情况,但crash的原因是long semaphore waits.long semaphore waits又为何物? 背景:Innodb使用了 ...

  8. poj1180

    斜率优化dp 据说这题朴素的O(n2)dp也可以A 没试过 朴素的dp不难想:f[i]=min(f[j]+sumtime[i]*sumcost[j+1,i]+c*sumcost[j+1,n]) 稍微解 ...

  9. bzoj1030

    AC自动机和DP. f[i][j] 表示在匹配到第i位置,处于ac自动机的j节点.决策第(i+1)个字母,计算出转移到第j2节点. f[i+1][j2] += f[i][j]; #include< ...

  10. 在线API,桌面版,jquery,css,Android中文开发文档,JScript,SQL掌用实例

    学习帮助文档大全 jquery,css,Android中文开发文档,JScript,SQL掌用实例 http://api.jq-school.com/