SAP_ALL vs SAP_NEW: Why Unrestricted Authorizations Are Dangerous
Every SAP auditor has a favorite question, and it's usually some variant of: "Show me everyone with SAP_ALL." There are few faster ways to turn a routine audit into a difficult conversation. This post explains what SAP_ALL and SAP_NEW actually are, why they exist, and how to handle them without derailing your project.
What SAP_ALL is
SAP_ALL is a single profile that contains every authorization in the system — all objects, all fields, all values. A user with SAP_ALL can do literally anything: post in any company code, maintain any user, run any program, read any data. The system performs no authorization checks against them at all.
It exists for legitimate reasons. During a fresh installation or a major upgrade, the basis team needs unrestricted access to configure the system before any roles exist. In a true emergency — production is down, the usual admin accounts are locked — it can be the only way back in. These are narrow, time-boxed scenarios, and that's exactly how SAP_ALL should be treated: a fire axe behind glass, not a daily toolkit.
Key takeaway: SAP_ALL disables every authorization check for that user. Legitimate for installation, upgrades, and genuine emergencies — never for day-to-day work, and never for end users.
What SAP_NEW is
SAP_NEW is SAP_ALL's lesser-known sibling, and it's actually the more interesting of the two. After an upgrade or support package, SAP delivers new authorization objects and new default values. Users' existing roles don't include these yet, which means things that worked before the upgrade can suddenly fail authorization checks after it.
SAP_NEW collects exactly those new authorizations — the delta introduced by the upgrade. The intended workflow: assign SAP_NEW to key users during the upgrade test phase so they can exercise the new functionality, identify which of the new checks their roles genuinely need, add those to the roles properly in PFCG, and then remove SAP_NEW. It's a scaffolding, not a structure.
The catch is the last step. SAP_NEW has a habit of surviving long past the upgrade — "we'll clean it up after go-live" — and quietly becoming a permanent, unaudited grant of broad authorizations. Auditors know this pattern well, which is why they ask about SAP_NEW almost as eagerly as SAP_ALL.
Why both are audit red flags
From an audit perspective, SAP_ALL and SAP_NEW share the same problem: they bypass the role concept entirely. Every control you've built — job-based roles, SoD splits, org-level scoping — simply doesn't apply to these users. And because they're assigned as profiles (in SU01's Profiles tab) rather than through roles, they don't even show up in a PFCG role review. Someone has to look specifically.
The questions to have answers for: Who currently holds SAP_ALL or SAP_NEW? Why does each of them need it? When was it granted, by whom, and when does it expire? "It's always been like that" is not an answer auditors accept.
Making the review stick
A one-time cleanup feels good, but access drifts. People change jobs, projects end, consultants leave — and the SAP_ALL you removed in March has a way of reappearing by September, granted "temporarily" by someone under deadline pressure. The fix is a recurring review: quarterly, pull the list of SAP_ALL and SAP_NEW holders and send it to the security lead for sign-off. Anyone who can't justify their entry loses it.
Pair that with alerting if your tooling supports it. GRC can flag new assignments of critical profiles the moment they're made; even a simple scheduled job emailing the list beats discovering the problem during the audit. The goal isn't to make SAP_ALL impossible to grant — emergencies are real — but to make every grant a conscious, recorded decision with an expiry date attached.
The practical handling
First, inventory. Run a report (RSUSR003 in older releases, or the user information system) listing every user with SAP_ALL or SAP_NEW. You'll often find surprises — service accounts nobody remembers, ex-consultants, test users in production.
Second, justify or remove. For each one, either document a genuine business reason with an expiry date, or remove it. Emergency accounts should have their passwords sealed (the classic "firecall" envelope procedure) rather than sitting active. For SAP_NEW specifically, check whether the upgrade it was granted for is long finished — if the roles were properly updated months ago, the scaffolding should have come down with them.
Third, prevent recurrence. Make SAP_ALL/SAP_NEW assignment a controlled process: request, approval, time limit, automatic review. In GRC environments, flag them as critical risks so any new assignment triggers a workflow instead of slipping through quietly.
Handled this way, SAP_ALL and SAP_NEW go from audit nightmare to non-issue. They're tools with a purpose — the discipline is in making sure the purpose is real, documented, and temporary.
Read more →