Skip to Content
Technical Articles

SAP GRC 10/10.1/12.0 – Access Control Module related Tables

Purpose

The purpose of this blog post is to explain the about the various tables related to GRC Access Control module and how these tables can be utilized in order to prepare reports or extract data as per your requirements:

1. Request Reason

Request reason is stored in SAPscript, with Text Object as “GRC” and ID as “LTXT”. You can use standard SAPscript Function Module (READ_TEXT) to fetch request reason of a GRC request by passing the “TEXT” value to the Name field. This TEXT value can be fetched from table STXH

e.g: ACCREQ/00155D08DA361ED2A1BD201C710165A5/LONG_TEXT (For access requests ACCREQ/RequestID(GRACREQ Table)/LONG_TEXT

READ_TEXT.png

READ_TEXT1.png

READ_TEXT1.png

2. Request Comments

Request comments are stored as SAPscript objects.You can use standard SAPscript Function Module (READ_TEXT) to read the comments of a GRC request.

READ_TEXT.png

a. Retrieve the “EXTERNAL_KEY” value from GRFNMWRTINST table by passing the request number details in “EXTERNAL_KEY_DIS” field

b. Retrieve the “TDNAME” value from STXH table by passing the “EXTERNAL_KEY” value retrieved from above step with * at the end as the comments get saved with timestamp and there could be multiple comments.

You have to pass following values to the function module:

ID = NOTE

NAME = TDNAME

OBJECT = GRC

3.  GRACREQ – Request details table

This table will provide the information about Request ID, Request Type, Request Creation Date and Request Priority. (Note: You can also get UAR request details from this table)

4. GRACREQUSER – GRC Request User details table

This table will provide the information about user for whom GRC request has been raised and provides details about User ID, User First Name, User Last Name and User Email ID

5. GRACREQPROVITEM – GRC Request Line Item Details

This table will provide the information about the request and the below Line Items in the request with their corresponding VALID FROM and VALID TO dates.

Role
System
Fire Fighter Id
User
Profile
PD Profile
FireFighter Role

6. GRACREQPROVLOG – GRC Request Provisioning Logs

This table will provide the information about the request and the Line Items in the request with their provisioning status (Success or Failure or Warning)

7. GRFNMWRTINST – GRC Request Instance Details

This table will provide the information about the request and its corresponding instance status.

8. GRFNMWRTDATLG – GRC Request Line Item Approval Status

Get the details of Instance ID from GRFNMWRTINST table by passing the request number in “EXTERNAL_KEY_DIS” field. Based on the Instance ID you can get the details of each Line Item approval status in the request, Path ID, StageSequence Number and Approver User column in this table gives the details of the approvers.

Based on Path ID you can get the stage details by using the tables “GRFNMWCNPATH” and “GRFNMWCNSTG”

9. GRFNMWRTAPPR – Current Approver for Request Line Items

This table will provide the information about the request and current approvers for corresponding Line Items in the request.

10. GRACROLE & GRACROLEAPPRVR

These tables will provide the information about the roles and their corresponding role owners maintained in BRM.

11. GRACRLCONNVAL

This table will provide you the details about Auto provisioning status for a role

12.  HRUS_D2 – Approver Delegation Table

This table will provide the information about the delegated approvers in GRC

13. GRACSTDROLE and GRACSTDROLESYS

These tables will provide the information about the default roles maintained in GRC.

14. GRPCCHKO and GRPCPHIO – GRC Request Attachment Details

These tables will provide the information about the attachments in the GRC request.

Get Request ID for a GRC request from GRACREQ Table

Input Request ID retrieved above in the field PROP08 of table GRPCPHIO.Get PHIO_ID from GRPCPHIO table. This table also gives attachment description details.

Input PHIO_ID to table GRPCCHKO. This table will provide Attachment Name and Type details.

15. Mitigating Control Vs. Risk/Monitor/Approver Details

Retrieve OBJID from table HRP5354 by inputting the Mitigating Control ID in SHORT_KEY1 field

Retrieve KEY 1 and KEY 2 from HRT5320 by passing OBJID retrieved above into T_OBJID field which will give Risk/MC Monitor/MC Owner Details

16. Mitigating Control Short Text and Long Text

Short Text

Retrieve “OBJID” from table HRP5354 by passing Mitigating Control ID into “SHORT_KEY1” field

Retrieve ‘STEXT’ from table HRP1000 by passing ‘OBJID’ value retrieved from above table

Long Text

Retrieve “OBJID” from table HRP5354 by passing Mitigating Control ID into “SHORT_KEY1” field

Retrieve “TABNR” values by sorting ‘AEDTM’ and take the latest last modification date from table HRP1002 by passing PLVAR = ’01’, OTYPE = ‘P2’, OBJID = value retrieved from above table and SUBTY = ‘0001’

Retrieve “TLINE” values from table HRT1002 by passing TABNR value retrieved from above table

17. Risk Long Text

Class: CL_GRFN_SAPSCRIPT

Method: RETRIEVE_STRING

Pass following values:

IV_LANGUAGE = EN
IV_OBJECT_ID = SOD_RISK/<RiskID>
IV_CLASS = LTXT
IV_TOKEN = RSK
IV_APPLICATION = GRC

18. Control Assignment request Items table

GRACMITMSMPVALI – This table will have the Control Assignment request and corresponding Lineitems of that request.

MSMP Instance and External Key in this table are referenced from GRFNMWRTINST table.

19. Mitigating Controls related tables

GRACMITUSER – mitigating controls assigned to User Level Risk violations
GRACMITUSERORG – mitigating controls assigned to User Org Level Risk violations
GRACMITROLE – mitigating controls assigned to Role Level Risk violations
GRACMITROLEORG – mitigating controls assigned to Role Org Level Risk violations
GRACMITPROF – mitigating controls assigned to Profile Risk violations
GRACMITOBJECT – mitigating controls assigned to HR Objects Risk violations

20. Mitigation-Violation Tables for Access Request (temporary storage while workflow is running)

GRACMITUSERAR – stores mitigating controls assigned to User Level Risk violations during Access Request approval process. Once request is finished, if access is provisioned, mitigations are transferred to GRACMITUSER

GRACMITUSERORGAR – stores mitigating controls assigned to User Org Level Risk violations during Access Request approval process. Once request is finished, if access is provisioned, mitigations are transferred to GRACMITUSERORG

21. GRC User Access Review (UAR) related tables:

GRACREQ – This table will provide the information about Request ID, Request Type, Request Creation Date and Request Priority for UAR requests also.

GRACREJREASON – REJECTION reasons for UAR requests are stored in this table.

GRACREVCORDMAP – This table will store the Reviewer – Coordinator mapping defined in GRC system.

GRACREVITEM – For GRC access requests, the line item details can be retrieved from table GRACREQPROVITEM. Similarly for UAR requests, the line item details can be retrieved from table GRACREVITEM.

This table will provide the information about the UAR request and the lineitems with details mentioned below:

User ID – Connector – Review Item ID (Need to use GRACROLE to get the review item name which is role name) – Review Item usage.

GRACREVREJUSER – This table stores details of users rejected in UAR requests with the correpsonding rejection reasons referenced from tables GRACREJREASON and GRACREJREASONT.

GRACREQPROVLOG – GRC Access Request Provisioning Logs

The same table will provide the information about the UAR requests and the Line Items in the request with their provisioning status (Success or Failure or Warning)

22. GRC Emergency Access Management (EAM) related tables:

GRACFFOWNER / GRACFFOWNERT – This table will store the mapping between Firefighter ID Owners and  corresponding Firefighter IDs

GRACFFCTRL – This table will store the mapping between Firefighter ID Controllers and corresponding Firefighter IDs along with the log delivery options (Email, Workflow or Log Display) for the controller. If the delivery option is left BLANK then by default the option considered is “Log Display”.

GRACFFOBJECT / GRACFFOBJECTT – This is the master table which stores details of all Firefighter IDs in various ABAP systems and also stores the last logon date of Firefighter IDs.

GRACFFUSER / GRACFFUSERT – This table will store the mapping between Firefighter IDs and  users assigned to those Firefighter IDs

GRACREASONCOD / GRACREASONCODT – This is a master table will store the details of all EAM reason codes, reason code descriptions and status.

GRACREASONSYS – This table will store the mapping between reason codes and corresponding target connectors

GRACFFLOG – When Firefighter Log Sync job is executed the details of Firefighter ID, Firefighter User, Logon and Logoff time, Reason Code used and Workflow Status (whether sent or not) are updated in GRACFFLOG table.

GRACFFREPMAPP – For every entry in GRACFFLOG table, if the corresponding transaction usage details are synced to GRACACTUSAGE table, then the mapping between FF LOG ID in GRACFFLOG table and ACTION ID in GRACACTUAGE table is stored in GRACFFREPMAPP table.

SAP GRC will capture the following logs during a Firefighter session and creates an automated workflow request for log review by Firefighter ID controllers.

Transaction Logs: Retrieves transactions executed by the Firefighter ID from transaction STAD and then stores them in GRACACTUSAGE table

Change Logs: Retrieves all the change logs based on activities performed by the Firefighter ID from change document tables CDPOS, CDHDR and DBTABLOG and then stores them in GRACCHANGELOG table

System Logs: Retrieves all the system logs based on activities performed by the Firefighter ID from transaction SM21 and then stores them in GRACSYSTEMLOG table

Security Audit Log: Retrieves all security audit Logs for the activities performed by the Firefighter ID from transaction SM20 and then stores them in GRACAUDITLOG table

OS Command Log: Retrieves changes to OS commands by the Firefighter ID from transaction SM49 and then stores them in GRACOSCMDLOG table

Note: SAP GRC will retrieve the logs only if they are recorded in the target systems (e.g. S4HANA, ECC etc.)

Looking forward for all your inputs in improving this blog by including additional table details (if any missing)

Thanks for reading.

Best Regards,

Madhu Babu Sai (#MJ)

13 Comments
You must be Logged on to comment or reply to a post.
  • Hi Madhu, its is very informative. Can we find our in which table the end user (affected user) details are stored for whom the provisioning is to be done in a Access request

    Regards,

    Krish

  • Hi Madhu,

    Thanks for the info, good stuff!

    Another Table, GRACROLEMAP, can you let us know how this Table is sourced?  Which function in GRC allows this Table to be sourced?

    Thank you in advance,

    Chris

     

    • Hi Christopher,

      In GRC BRM module, you can map a role from the same system or different system to a role.

      For example: I have a role in GRC system (Role A) and this role need to be automatically included in the GRC request whenever users select ROLE B which is in ECC system then role mapping can be helpful.

      1. Map Role A from GRC system to Role B in ECC system which can be done from “Define Role” stage in BRM in the tab “ROLE MAPPING”.

      Regards,

      Madhu

       

    • Hi Pranjal,

      GRC access request attachments are stored in the following tables:

      GRPCCHKO and GRPCPHIO – GRC Request Attachment Details

      These tables will provide the information about the attachments in the GRC request.

      Get Request ID for a GRC request from GRACREQ Table

      Input Request ID retrieved above in the field PROP08 of table GRPCPHIO. Get PHIO_ID from GRPCPHIO table. This table also gives attachment description details.

      Input PHIO_ID to table GRPCCHKO. This table will provide Attachment Name and Type details.

      You have to get your ABAPer write a small piece of code to download attachments from the mentioned tables using ARQ request number.

      CALL METHOD cl_grfn_documents_manager=>get_physical_document_content

      (Use this method to get the document content and convert it to binary using following function module)

      CALL FUNCTION ‘SCMS_XSTRING_TO_BINARY’

      Regards,

      Madhu

  • Hi Madhu,

     

    Very useful information.

     

    I’m looking for information to find out EAM workflow path related information?any table?

     

    Is it possible to reset the completed log  and resend it again?

     

    Thanks,

    Tireesha