📚 SAP Security & GRC — Overview
SAP Security is the practice of controlling who can access what data and functions within SAP systems. In enterprises running SAP ERP, improper security leads to financial fraud, data breaches and regulatory non-compliance (SOX, GDPR, ISO 27001) — worth millions in fines.
SAP Security professionals are among the most stable and highest-paid in enterprise IT — ₹8–40 LPA in India — because every large SAP customer needs them permanently.
💡 How to use this page: Click any topic in the left sidebar. All notes load instantly with no page reloads. Every section has original SVG diagrams, examples and interview questions. Use Prev / Next buttons to go in order.
🔐 SAP Authorization Concept
Beginner → IntermediateThe Authorization Concept is the framework that governs how SAP decides whether to allow or deny any user action. Every time a user clicks anything in SAP, an authorization check runs in the background. Understanding this perfectly is the most critical SAP Security skill.
💡 The Golden Rule of SAP Security: Every user should have the minimum access required to perform their job — and nothing more. This is the Principle of Least Privilege (PoLP) and it is the foundation of all SAP security design.
How the Authorization Check Works — Step by Step
SAP Security — 3-Layer Architecture
Key SAP Security Terms
Important Profile Parameters
| Parameter | Value | Purpose |
|---|---|---|
login/min_password_lng | 8 (minimum) | Minimum password length |
login/password_expiration_time | 90 | Days before password expires |
login/fails_to_user_lock | 5 | Wrong attempts before account locks |
login/no_automatic_user_sapstar | 1 | Disable dangerous SAP* backdoor in ALL clients |
login/failed_user_auto_unlock | 1 | Auto-unlock Dialog users at midnight (0 = never) |
auth/rfc_authority_check | 1 | Enforce authorization checks in RFC calls |
rsau/enable | 1 | Activate Security Audit Log (SM19) |
👤 User Types & Management (SU01)
BeginnerSAP has five user types, each designed for a specific purpose. Choosing the wrong type is a common security mistake — e.g., running batch jobs under a Dialog user creates unnecessary audit exposure and locks if the password expires.
| User Type | Can Log In? | Password Policy | Best Used For | Common Mistake |
|---|---|---|---|---|
| Dialog | YES — via SAP GUI | Full: expiry + complexity + history | Regular end users — daily work | Running background jobs as Dialog — password expires and job fails at 2 AM |
| System | NO — no interactive login | Date-based expiry only | Background jobs, RFC connections, batch processing | Assigning SAP_ALL — use minimum required authorizations |
| Communication | NO — only RFC | Date-based expiry only | RFC connections between SAP systems (System-to-System) | Not rotating passwords — interfaces fail silently |
| Service | YES — multiple people share | No auto-expiry — must manage manually | Self-service portals, anonymous internet transactions | Weak password or SAP_ALL — critical vulnerability |
| Reference | Cannot login at all | Not applicable — no password | Template for assigning profiles to multiple users | Using as a real user — reference users cannot log in |
🚫 Audit Red Flag: Finding Dialog users running background batch jobs is an immediate red flag in any SAP security audit. Background jobs must run under System users with minimum authorizations. Use SM36 to check job owner.
SU01 — Key Actions
🛠️ Roles & Profiles — PFCG Deep Dive
IntermediateRoles (formerly Activity Groups) are the primary mechanism for granting access in SAP. Transaction PFCG (Profile Generator) creates, maintains and assigns roles. This is the most hands-on skill in SAP Security.
Types of Roles
Contains T-codes and authorizations for ONE specific business function. Maps to one generated profile.
Example: Z_FI_GL_DISPLAY_SR — only display GL documents.
Combines MULTIPLE single roles into one package for easier assignment. Contains no authorizations itself — just references.
Example: ZC_FI_ACCOUNTANT groups Display, Post and Report single roles.
Inherits menu and T-code list from a Master Role. Has DIFFERENT organizational values (company code, plant, sales org).
Example: Z_FI_POST_CC1000 derived from Z_FI_POST_MASTER for company code 1000.
PFCG Role Design — 5 Steps
Role Naming Convention — Best Practice
| Pattern | Example | Meaning |
|---|---|---|
Z_[MOD]_[FUNCTION]_SR |
Z_FI_GL_ACCOUNTANT_SR |
Custom(Z) · FI module · GL Accountant function · Single Role |
Z_[COUNTRY]_[MOD]_[JOB]_SR |
Z_IN_MM_BUYER_SR |
India · MM module · Buyer job · Single Role |
ZC_[NAME] |
ZC_FI_ALL_ACCOUNTANTS |
Composite role grouping multiple FI single roles |
ZD_[MASTER]_[ORG] |
ZD_FI_POST_CC1000 |
Derived from Z_FI_POST master, org value = company code 1000 |
📋 Authorization Objects & Fields
IntermediateMost Important Authorization Objects
| Object | Controls | Key Fields | Example |
|---|---|---|---|
S_TCODE |
Transaction code access | TCD (Transaction code) | TCD = FB01 allows user to execute FB01 |
F_BKPF_BUK |
FI document posting by company code | BUKRS (Company code), ACTVT (Activity) | BUKRS=1000, ACTVT=01 allows posting in company 1000 |
F_BKPF_KOA |
FI document by account type | KOART (Account type), ACTVT | KOART=D (Customer), ACTVT=03 allows display only |
M_MSEG_BWA |
Goods movement type | BWART (Movement type), ACTVT | BWART=101 (Goods Receipt from PO) |
P_ORGIN |
HR — org data access | VDSK1 (Org key), INFTY (Info type), SUBTY | Restrict HR data by org unit and info type |
S_DEVELOP |
ABAP development access | DEVCLASS (Package), ACTVT, OBJTYPE | ACTVT=02 means Change — dangerous in production! |
S_ADMI_FCD |
Basis/system administration | S_ADMI_FCD (Admin function) | Controls SM50, SM51, SM69 etc. |
S_TABU_DIS |
Table browser access | DICBERCLS (Auth group), ACTVT | Controls SE16, SE16N table display |
ACTVT Field — Activity Values
🚫 Warning — ACTVT=* (Wildcard): Assigning * to ACTVT means ALL activities — including Delete and Change. This is an automatic audit finding. Always assign specific activity values. Never use wildcards in production roles.
🔍 Troubleshooting Authorization Issues
IntermediateStep-by-Step Troubleshooting Process
SUIM — Key Reports You Must Know
| Scenario | SUIM Path | What It Shows |
|---|---|---|
| Who has SAP_ALL in production? | Users → By Profiles → Enter SAP_ALL | All users with the dangerous SAP_ALL profile — immediate audit finding |
| Who can run transaction SU01? | Users → By Transaction Code → Enter SU01 | All users who can create/modify other users — key SOD risk |
| What access does user X have? | Users → By Username → Enter username | Complete role and authorization picture for one user |
| Which users have role Z_FI_POST? | Roles → By Role Name → Enter role name | All users currently assigned to a specific role |
| Who has access to company code 1000? | Users → By Authorization Values → F_BKPF_BUK, BUKRS=1000 | Everyone who can post to that company code |
| Find dormant users | Users → By Logon Date → Users who haven't logged in since X date | Users to lock for security — reduce attack surface |
⚖️ SAP GRC Access Control — Complete Overview
Intermediate → AdvancedSAP GRC (Governance, Risk and Compliance) Access Control is a separate SAP product installed alongside your SAP ERP system. It provides automated, auditable controls for managing user access risks — mandatory for SOX, GDPR and ISO 27001 compliance.
GRC vs Manual Security — Why GRC?
| Aspect | Without GRC (Manual) | With GRC Access Control |
|---|---|---|
| SOD Detection | Manually review spreadsheets — weeks of work, error-prone | Automated real-time analysis against 200+ risk definitions in seconds |
| Access Requests | Email chains, no audit trail, long delays | Structured workflow with approval stages, auto-provisioning, complete log |
| Emergency Access | Give permanent access (risky) or struggle to respond | FF IDs with automatic logging, controller review within 24 hours |
| Role Management | Roles created inconsistently, no lifecycle management | Standardised methodology, automated review cycles, naming governance |
| Compliance Reports | Manual extraction and formatting — days of work | One-click SOX, GDPR, ISO 27001 compliance reports always ready |
📊 ARA — Access Risk Analysis
IntermediateARA is the heart of SAP GRC. It identifies Segregation of Duties (SOD) conflicts and critical access risks by comparing user/role access against a predefined Rule Set. Every SOX-compliant SAP customer uses ARA.
🕐 ARM — Access Request Management
IntermediateARM provides a structured, auditable workflow for requesting, approving and provisioning SAP user access. It replaces informal email chains with a governed process — every step logged, every approval documented.
ARM Workflow — End to End
💡 Why ARM Matters for SOX: SOX Section 302 requires management to certify that access controls are operating effectively. Without ARM, you cannot prove who approved what access and when. With ARM, you have an immutable, timestamped approval trail for every user access grant.
🔥 EAM — Emergency Access Management (Firefighter)
AdvancedFirefighter (EAM) provides a controlled mechanism for granting temporary elevated access during production emergencies — while maintaining a complete audit trail. Without EAM, companies either give permanent access (risky) or have no secure way to respond to 2 AM production crises.
👔 BRM — Business Role Management
IntermediateBRM provides an end-to-end lifecycle for managing SAP roles — from creation and naming governance to periodic reviews and decommissioning. It bridges the gap between business language (job functions) and technical SAP roles.
BRM Role Lifecycle
⚡ SOD — Segregation of Duties
Intermediate → AdvancedSegregation of Duties ensures no single individual controls all steps of a critical business process — because unchecked access creates undetected fraud opportunities. SOD is a mandatory requirement of SOX, COSO, ISO 27001 and most ERP audit frameworks.
🚫 Classic Fraud Example — Procure to Pay (P2P): If one person can CREATE a vendor (FK01) + CREATE a purchase order (ME21N) + APPROVE the PO + POST goods receipt (MIGO) + ENTER the invoice (MIRO) + RUN the payment (F110) — they can fabricate the entire cycle, pay a ghost vendor and steal company money. This is exactly what SOX Section 302 and 404 are designed to prevent.
Top SOD Conflicts Every SAP Security Professional Must Know
| Business Process | Function 1 | Function 2 | Fraud Risk | Risk Level |
|---|---|---|---|---|
| Procure to Pay | Create Vendor (FK01) | Process Payment (F110) | Create ghost vendor and pay them | Critical |
| Procure to Pay | Create PO (ME21N) | Approve PO (ME29N) | Self-approve fraudulent purchase orders | Critical |
| Financial Accounting | Post Journal Entry (FB01) | Approve Journal Entry | Manipulate financial records undetected | Critical |
| HR / Payroll | Create Employee (PA40) | Process Payroll (PC00) | Add ghost employees to payroll | Critical |
| Order to Cash | Create Customer (FD01) | Post Customer Invoice (FB70) | Raise fake invoices, steal payments | High |
| Basis / Security | Create User (SU01) | Assign Roles (PFCG) | Grant excessive access to self or others | Critical |
| Asset Management | Create Asset (AS01) | Post Depreciation (AFAB) | Manipulate asset values on balance sheet | High |
🏘️ SAP S/4HANA Security
AdvancedSAP ECC goes End of Standard Maintenance in 2027. Every company must migrate to S/4HANA. This is the biggest SAP security challenge in 20 years — and the biggest opportunity for SAP Security professionals who understand the differences.
| Area | SAP ECC | SAP S/4HANA | Security Impact |
|---|---|---|---|
| User Interface | SAP GUI (T-codes) | SAP Fiori Launchpad (Apps) | Need 3 auth layers: Backend PFCG + OData service + Fiori catalog/group |
| Data Model | Separate BKPF/BSEG, MKPF, etc. | Universal Journal (ACDOCA) | Some FI/CO auth objects changed — all roles need retesting |
| Business Partner | Separate Vendor (LFA1) + Customer (KNA1) | Unified Business Partner (BP) | New auth objects: BP_BPTC, BUPR_BUPA — must add to Vendor/Customer roles |
| T-Codes | Most T-codes work | Many T-codes deprecated or replaced by Fiori apps | Roles built around T-codes may be partly invalid — redesign needed |
| Embedded Analytics | Separate BI/BW system | Built into S/4HANA HANA DB | New auth objects for CDS views and analytical reports |
💡 Migration Best Practice: Do NOT migrate old ECC roles directly to S/4HANA. Build roles from scratch aligned to business functions and Fiori app catalogues. Use SAP's Fiori Apps Reference Library to understand which auth objects each app requires. Plan for 30–50% more security effort in S/4HANA projects vs ECC.
📱 SAP Fiori Security — 3-Layer Architecture
AdvancedFiori is the browser-based UI for S/4HANA. Security requires three separate layers — all three must be correctly configured for a user to access a Fiori app. Missing any one layer results in the app not appearing or throwing an authorization error.
💡 Fiori Debugging Checklist: When a user cannot access a Fiori app, check in this order:
(1) Is the Fiori catalog/group assigned? Check /UI2/FLPD_CONF.
(2) Is the OData service activated? Check /IWFND/MAINT_SERVICE.
(3) Run SU53 in the backend for the traditional auth check.
All three layers must be green for the app to work fully.
📋 Security Audit Checklist — 25 Critical Checks
AdvancedUse this checklist before any internal or external audit. All Critical and High findings must be resolved before auditors arrive — they will definitely look for these.
❓ SAP Security Interview Q&A
Most frequently asked questions at EY, Deloitte, PwC, IBM, Accenture and SAP implementation partners. Click to reveal model answers.
Model Answer:
When a user executes any SAP function, the system runs an AUTHORITY-CHECK statement in the ABAP program. First, S_TCODE is checked — if the transaction code is not in the user's roles, access is denied immediately. If S_TCODE passes, SAP checks ALL authorization objects relevant to that transaction against the user's profile values. If ANY object check fails, access is denied. Transaction SU53 shows the exact object, field and required value for the last failed check. The security team uses PFCG to add the missing authorization to the role, generates the profile, and the user logs out and back in to rebuild their user buffer with the new values. The chain is: User action → AUTHORITY-CHECK in ABAP → S_TCODE check → Object checks → Grant or Deny.
Model Answer:
A Single Role contains transactions and authorizations for one specific business function — it generates one profile. A Composite Role combines multiple single roles into one assignment package — it has no authorizations itself, just references. Assigning a composite role assigns all its included single roles simultaneously. A Derived Role inherits its menu and T-code list from a Master Role but has different organizational-level values (company code, plant, sales org). This is the most efficient design for multi-company environments — create the menu once in the master role, derive roles for each org unit with different company code values. Changes to the master role menu automatically propagate to all derived roles.
Model Answer:
Segregation of Duties ensures no single person controls all steps of a critical business process, preventing undetected fraud. Critical SAP examples: P2P — same person creates vendor (FK01) AND processes payment (F110) can create ghost vendors and steal money. Financial — same person posts journal entries AND approves them can manipulate accounts undetected. Security — same person creates users (SU01) AND assigns roles (PFCG) can grant themselves excessive access. SOD is enforced in SAP GRC ARA by comparing user access against a Rule Set of 200+ conflicting function pairs. Violations are categorized as Critical, High, Medium or Low. Critical violations must be remediated; others can be mitigated with compensating controls.
Model Answer:
Firefighter (EAM) provides temporary elevated access for production emergencies with a complete audit trail. Standard process: (1) A production emergency occurs. (2) The user requests a Firefighter ID from the FF Owner — typically via GRC workflow or phone in an emergency. (3) The FF Owner approves and assigns the specific FF ID. (4) The user logs in with the FF ID — every transaction executed and every table accessed is automatically logged. (5) The log is automatically emailed to the FF Controller, who MUST review and acknowledge within 24 hours. This is mandatory — unreviewed logs are an immediate SOX finding. (6) The access is revoked after the emergency is resolved. The key difference from permanent access: every action is logged, a second person (Controller) reviews everything, and access is temporary.
Model Answer:
Five major areas change: (1) Fiori UI — security now requires three layers: traditional PFCG backend roles, OData service activation (/IWFND/MAINT_SERVICE), and Fiori catalog/group assignment (/UI2/FLPD_CONF). All three must be configured. (2) Business Partner — replaces separate Vendor and Customer masters. New authorization objects BP_BPTC and BUPR_BUPA must be added to affected roles. (3) Universal Journal — ACDOCA replaces BKPF/BSEG and other FI/CO tables; some authorization objects changed. (4) T-code deprecation — many classic T-codes replaced by Fiori apps, making T-code-centric roles partly invalid. (5) Embedded Analytics — CDS views introduce new authorization concepts not present in ECC. Best practice: build new roles from scratch for S/4HANA rather than migrating ECC roles.
Model Answer:
Step 1: Ask the user to immediately run SU53 after the error — it captures the exact authorization object, field and required value that was missing. Step 2: Note the failing object (e.g., F_BKPF_BUK, field BUKRS, required value 1000). Step 3: Check the user's roles in SU01 to understand current access. Step 4: Identify which role should contain this authorization based on the user's job function. Step 5: Open the role in PFCG, go to Authorizations tab, find the failing object, and add the correct organizational value. Step 6: Generate the role profile (critical — without generation the change has no effect). Step 7: Ask the user to log out completely and log back in (user buffer refresh). Step 8: Test the original action. Step 9: Document the change with a change management ticket for audit trail. Never make production changes without a change ticket.
Model Answer:
SUIM (User Information System) is SAP's built-in reporting tool for security-related information. Key reports: (1) Users with critical profiles — find all users with SAP_ALL or SAP_NEW (immediate audit findings). (2) Users who can execute a specific transaction — who can run SU01? FB01? (3) Transactions executable by a specific user — what can user JSMITH run? (4) Users assigned to a specific role — who has Z_FI_POSTING_SR? (5) Authorization object values — who has BUKRS=1000 in F_BKPF_BUK? (6) Locked users — list all locked accounts. (7) Dormant users — users who haven't logged in since a date. (8) Role contents — what does role Z_FI_POST contain? SUIM is used by security teams, internal audit and external auditors. Always run SUIM proactively before an audit to identify issues yourself before auditors do.
Model Answer:
Five types: (1) Dialog — standard user for human-initiated interactive work via SAP GUI. Password policy fully applies — expiry, complexity, history. Use for all regular end users. (2) System — for background processing, batch jobs and RFC. Cannot log in interactively. Password expires only on a set date. Use for scheduled jobs and system-to-system interfaces. (3) Communication — for RFC connections between SAP systems. Similar to System but designed for system-to-system calls. (4) Service — allows multiple people to share one ID, typically for internet or portal scenarios. No automatic expiry — requires careful password management. Never assign excessive authorizations. (5) Reference — cannot log in at all. Used as a template to assign a standard profile set to other users. Common mistake: using Dialog users for batch jobs — password expires at 2 AM and the job fails. Always use System users for background processing.
🏅 SAP Security Certification Guide
All LevelsSAP Certified Application Associate — SAP System Security & Authorizations
| Duration | 180 minutes |
| Questions | 80 multiple-choice |
| Pass Mark | 65% (52 correct) |
| Level | Associate |
| Prerequisites | 6+ months SAP Security experience |
| Cost | approx. USD 500 |
| Validity | 5 years — recertification required |
SAP Certified Application Associate — SAP Access Control (GRC) 12.0
| Duration | 180 minutes |
| Questions | 80 multiple-choice |
| Pass Mark | 65% (52 correct) |
| Level | Associate |
| Prerequisites | SAP GRC project experience |
| Cost | approx. USD 500 |
| Validity | 5 years |
C_SECAUTH_20 Topic Weightage
| Topic Area | Exam Weight | Study Priority |
|---|---|---|
| User Administration (SU01, user types, password policy) | 15–20% | HIGH — always asked |
| Role & Profile Design (PFCG, SU24, naming conventions) | 20–25% | HIGH — most marks here |
| Authorization Concept & Objects (checks, objects, fields) | 15–20% | HIGH — conceptual foundation |
| Troubleshooting (SU53, SUIM, error analysis) | 10–15% | MEDIUM — practical scenarios |
| GRC Overview & Integration | 10–15% | MEDIUM |
| Security Audit & Monitoring (SM19, SM20, parameters) | 10–15% | MEDIUM |
| S/4HANA & Fiori Security Basics | 5–10% | LOW — but growing |
📚 Best Preparation Path: 3–4 months hands-on SAP system practice + studying these notes. SAP offers a free 30-day trial sandbox via SAP Learning Hub. Practice creating roles in PFCG, troubleshooting with SU53, and running SUIM reports. Theoretical knowledge alone is insufficient — the exam tests practical understanding with real-scenario questions.