SAP transaction codeObjectST01ModuleSECURITY_GRC

ST01 — System Trace for Authorization Checks

ST01 is the general system trace transaction. Its Authorization Check component records every authority-check call made on the application server where the trace is active, showing the object, field values, and pass/fail result for each check, in sequence. It is the tool of choice when SU53 only shows the last failed check and the full chain of checks needs to be seen.

This page covers ST01 as the low-level authorization trace tool used when SU53 is insufficient, including how the trace scope (server, work process, user) determines whether anything useful gets captured. It focuses on the diagnostic mistakes that waste time: tracing the wrong server, leaving trace on too long, and confusing a passed check with a correct one.

Reviewed by an ERPClimb SAP consultant on 15 Sept 2026· 1,274 words

Esta página aún no está disponible en español.

Purpose

ST01 activates a kernel-level trace on the application server it is called from, and one of its selectable components is the authorization check trace. When active, every authority-check statement executed by any program running through that server (or, on later releases, that restricted to a specific user) is logged with the object checked, the field values passed, and whether it passed or failed. The structural fact that causes most confusion is that ST01 traces at the server/work process level, not globally across the system by default in older releases. A user working on a different application server, or a background job dispatched to a different instance, will produce nothing in a trace started on the wrong node. Consultants who forget this spend time convinced the trace is not working when it simply never saw the relevant session.

When it is used

ST01 is reached for once SU53 has been ruled out or has proven inadequate. SU53 only shows the most recent failed authority-check for the logged-on user's current session, which is fine for a single dialog failure the user can reproduce immediately after it happens. It is useless for background jobs, RFC calls, batch input sessions, other users' sessions, or cases where several checks fail in sequence and only the last one is visible. ST01's authorization component is used in exactly those cases: reproduce the failing step while the trace is running, then read the full sequence of checks that were attempted, not just the final one. It is also used when a check unexpectedly passes with broader values than intended, which SU53 would never surface because SU53 only reports failures.

How to use it in practice

  • Confirm which application server or work process the failing session or job is actually running on; starting the trace on the wrong server captures nothing.
  • Call ST01 on that server, open trace components, and select Authorization Check (add SQL or RFC trace only if genuinely needed, since each added component multiplies the volume of trace output).
  • If the release allows restricting to a specific user, set that restriction; otherwise be aware the trace will capture every user active on that server.
  • Switch the trace on immediately before reproducing the issue, then reproduce it as quickly as possible.
  • Switch the trace off as soon as the reproduction step is complete to limit file size and performance impact.
  • Open the analysis screen, filter by time window and, if available, by user, and read the check sequence in order rather than jumping straight to the last entry.

Key data objects

  • Trace file at OS level on the application server - raw entries for every authority-check performed during the active window, including object name, field-value pairs, and pass or fail; not a transparent database table, and read back only through ST01's own analysis screen.
  • SU24 check indicator tables (USOBT_C / USOBX_C) - not written by ST01, but the object and field combinations shown in the trace are compared against these when deciding whether a check indicator needs to be switched or a field value proposal updated.
  • Authorization buffer in the user's session - not persisted either, but relevant because a check satisfied entirely from buffer may not appear the same way in trace output as one that hits the database, which occasionally explains a missing entry.

How to prove it in the data

There is no SE16 table to query for a classic ST01 authorization trace; the output lives in the trace file and is only readable through ST01's analysis screen for the window in which the trace was active. To prove a symptom, filter the analysis output by the time range of the reproduction and, where the release supports it, by user ID, then look for the specific authorization object under investigation. If nothing appears at all for that user and window, the first thing to confirm is that the trace was active on the same application server the session actually ran on, not a different one in the logon group.

ECC vs S/4HANA

ST01 itself is unchanged conceptually on S/4HANA and remains available as the general system trace transaction. For authorization work specifically, the aggregated authorization trace transaction (commonly referenced as STAUTHTRACE) is the preferred tool on later releases, since it captures per-user over a longer window and writes into a form that feeds directly into SU24 check indicator proposals via SU25, avoiding ST01's server-scoped, short-lived file limitation. There is no Fiori app for this; it remains a backend technical trace used the same way it always was.

Common pitfalls and how to diagnose them

  • Wrong scope: trace started on one application server while the failing session runs on another due to logon load balancing. Confirm the server name in the session's system status before activating the trace, every time.
  • Left running too long: authorization trace combined with SQL or table trace on a busy instance produces enormous files and measurable performance impact. Turn the trace off the moment the reproduction step finishes, not at the end of the investigation.
  • SU53 versus ST01 confusion: SU53 shows only the last failed check for the current session and is worthless for background jobs, RFC-called function modules, or multi-step failures. Reaching for SU53 first is fine, but if the picture does not fully explain the symptom, move to ST01 immediately rather than repeating SU53 calls.
  • Silent over-authorization: a check that passes in the trace is treated as proof there is no authorization problem, when the real issue is that the role grants far more than intended and a downstream business rule, not the authorization check, is doing the filtering. Read the actual field values in the passed check, not just the pass/fail flag.
  • Buffered checks not appearing: some authorization decisions are served from buffer and do not generate the expected trace line, which looks like a missing check rather than a buffered one. If an expected object never shows up, rule out buffering before concluding the code path was never reached.
  • Trace file rotation or restart: trace files are short-lived and can be overwritten or cleared by a server restart before analysis happens. Analyze immediately after reproduction, not the next day.

Whose problem this is

This sits with the security or authorization functional consultant for interpreting the trace and deciding on role or check indicator changes. Basis is needed to identify the correct application server or work process, manage disk space for trace files, and coordinate trace activation for background jobs. A clean handover states the exact reproduction timestamp, the server/instance name, the user ID, and the authorization object suspected of failing or over-permitting.

Related SAP objects

Reviewed pages this object connects to in the ERPClimb knowledge graph.

Source: ERPClimb — https://erpclimb.com/sap-tcodes/st01ERPClimb is an independent platform and is not affiliated with SAP SE. Reference pages are written and reviewed by SAP consultants for learning and troubleshooting.