SAP tableObjectUST12ModuleSECURITY_GRC

UST12 table — Classic authorization value ranges table

UST12 stores the low/high value ranges for individual authorization fields inside manually built authorizations from the classic pre-profile-generator security concept (created via SU02/SU03). It is not where PFCG-generated role authorizations live; those sit in AGR_1251. UST12 survives in current systems mainly as a legacy table, and a non-empty result usually points to an old, hand-built profile still in production use.

This page covers what a row in UST12 actually represents, the fields worth trusting, and the joins that connect it back to the classic (non-PFCG) authorization and profile tables. The pitfalls section focuses on the two mistakes that recur most: confusing UST12 with USR12, and assuming a role's real access can be read from UST12 when it was generated by PFCG.

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

What it stores

One row in UST12 is a single value range, a from/to pair or a single value, for one authorization field, inside one specific authorization object, inside one authorization name held in the AUTH field. It belongs to the classic pre-PFCG authorization concept, authorizations built by hand in transaction SU02 or SU03 and bundled into profiles through the older UST0x table family, rather than authorizations generated by the profile generator into AGR_1251. Because an authorization typically carries several fields, and a field can carry several value ranges, one authorization name spans many UST12 rows. The table still exists in every current system for backward compatibility and for any manually maintained authorization objects that were never migrated into a role-based profile.

Key fields

  • MANDT - client, always restrict first
  • AUTH - the classic authorization name that owns this value row
  • OBJCT - the authorization object being restricted, for example F_BKPF_BUK or S_TCODE
  • FIELD - the specific authorization field within that object, for example BUKRS
  • VON - the low value of the permitted range for that field
  • BIS - the high value of the permitted range for that field

How it joins the data model

  • UST12-AUTH = UST04-AUTH, links the value rows back to the profile-level assignment in the old authorization concept
  • UST12-OBJCT = USOBX_C-OBJCT, confirms the object is a valid checked object rather than an orphaned or retired one
  • UST12-OBJCT = USOBT_C-OBJCT, lets a consultant compare a manually maintained value range against the SAP-delivered default check for the same object and transaction
  • no direct join exists to AGR_1251, that table is the PFCG-generated counterpart for roles, not a foreign key partner of UST12

How to read it safely

Always restrict MANDT first, this is a client-dependent table and cross-client selection returns meaningless noise. AUTH by itself is not selective in a system that has accumulated years of custom authorizations, restrict by OBJCT and FIELD when hunting for a specific value such as a company code or plant. In a system built on PFCG from the start the table may be nearly empty, so a non-empty result is itself a finding worth chasing rather than background noise. VON and BIS are stored as text, not numbers, so range logic and sort order follow character comparison rules, not numeric ones, watch for leading zeros.

How to prove it in the data

Symptom: a company code that should have been removed from access is still reachable through an old authorization. Select UST12 where OBJCT equals F_BKPF_BUK and FIELD equals BUKRS, check whether the VON to BIS range still covers the company code in question. Take the AUTH value from the matching row and trace it through UST04 to the profile, then through the user master to confirm who still carries that profile.

ECC vs S/4HANA

The table structure is unchanged and it is still present in S/4HANA, kept for backward compatibility. Practically all current authorization management runs through PFCG and stores its data in the AGR_* table family, so a clean S/4HANA implementation should show UST12 empty or nearly empty. A non-empty table on an S/4HANA system usually indicates either legacy custom authorization objects that were never converted, or artifacts carried over from a system copy of an older landscape. No SAP-delivered compatibility view is known for this table, and current SUIM-style reporting has largely moved to the AGR_* tables instead.

Common pitfalls

  • Confusing UST12 with USR12, the names differ by one letter and one belongs to a different table family with a different generation mechanism, a typo in SE16N or a quick view produces a plausible-looking but wrong result
  • Assuming a PFCG role's effective access can be read from UST12, role-generated authorizations live in AGR_1251, UST12 only holds authorizations built manually outside the profile generator
  • Treating an empty UST12 result as proof that an old authorization no longer grants access, if the authorization was migrated into a role the relevant data has moved, not disappeared
  • Comparing VON and BIS as numbers, a range check on company code or cost center fields that relies on numeric sort logic will silently mismatch on leading zeros
  • Editing rows directly through SE16N to fix an authorization, this bypasses the consistency checks that SU02/SU03 run and desynchronizes the authorization definition from what the profile actually points to, later showing up as an SU53 result that contradicts what SE16N displays
  • Assuming the presence of an object here means it is still checked somewhere in the current system, orphaned rows for objects retired from productive use years ago are common and prove nothing about current risk
  • Assuming AUTH names are globally unique, they can be duplicated across clients through poor transport or copy practice, producing a false impression that two unrelated authorizations are the same one
  • Treating a non-empty UST12 in an S/4HANA system as an error, it usually just means legacy manually built authorizations were never cleaned up during the move away from the classic concept

Whose problem this is

The security or GRC team owns interpretation of this table, specifically whoever still maintains or is cleaning up authorizations built with SU02/SU03. Basis teams rarely have a reason to touch it. Functional and application teams should never edit UST12 directly, any change belongs in the authorization maintenance transactions so the profile and authorization stay consistent.

Related SAP objects

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

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