SAP tableObjectAGR_USERSModuleSECURITY_GRC

AGR_USERS table — Role to user assignment table

AGR_USERS stores the assignment of a role to a user, with a validity period given by FROM_DAT and TO_DAT. It is written whenever a security admin assigns a role in PFCG or through mass assignment in SU10. The table records only who is assigned to which role and for how long -- it holds no authorization values and no assignment history.

This page covers what AGR_USERS records, the fields and joins a consultant uses to trace role assignments back to authorization content and user master data, and the recurring mistakes made when reading this table as proof of actual access rather than as a roster of assignments.

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

What it stores

Each row in AGR_USERS is one assignment of one user to one role, with a validity period. When a security admin assigns a role to a user in PFCG, or via mass assignment in SU10, a row is written here for the role name and the user ID, carrying a start date and an end date. The table holds both single roles and composite roles; for a composite role the row represents assignment to the composite object itself, not to the single roles it aggregates. AGR_USERS does not carry authorization values -- it is purely the roster of who is assigned to what, for what period. It is the first table most access review and audit scripts read, because it answers 'who has this role' without touching the generated authorization profile.

Key fields

The table is narrow: a client, a role name, a user name, and two validity dates. Everything about what the role actually grants lives in other tables, not here.

  • MANDT - client
  • AGR_NAME - role name, single role or composite role
  • UNAME - user ID the role is assigned to
  • FROM_DAT - date the assignment becomes valid
  • TO_DAT - date the assignment expires

How it joins the data model

The consultant path from AGR_USERS almost always runs outward: from role and user, to what the role contains, to what the user's logon looks like.

  • AGR_USERS-UNAME = USR02-BNAME joins to the user master logon record
  • AGR_USERS-AGR_NAME = AGR_DEFINE-AGR_NAME joins to the role's description and role type (single, composite, derived)
  • AGR_USERS-AGR_NAME = AGR_1251-AGR_NAME joins to the authorization objects and values generated for that role
  • AGR_USERS-AGR_NAME = AGR_TCODES-AGR_NAME joins to the transaction codes the role's menu grants

How to read it safely

Always restrict on MANDT plus either AGR_NAME or UNAME before running a query; the table grows to millions of rows in landscapes with high role turnover, and an unrestricted scan on UNAME alone across a large user population is slow. For an 'active access today' question, add FROM_DAT less than or equal to today and TO_DAT greater than or equal to today, since expired rows are not deleted and remain in the table indefinitely until a cleanup job removes them. If the role in question is a composite role, do not stop at AGR_USERS -- the single roles it contains are listed elsewhere and must be expanded to see the real authorization footprint.

How to prove it in the data

To confirm a user currently holds a specific role, select AGR_USERS with UNAME equal to the user ID and AGR_NAME equal to the role name, then check that today's date falls between FROM_DAT and TO_DAT. A row outside that date window confirms the role was assigned but is not currently active. To see everything a user is assigned to right now, select on UNAME alone with the date filter applied, then cross-check each AGR_NAME against AGR_DEFINE to see whether it is single or composite.

ECC vs S/4HANA

AGR_USERS exists in S/4HANA with the same structure and the same purpose it had in ECC. It continues to be written by PFCG when a role is assigned to a user and by mass assignment through SU10. There is no widely used compatibility CDS view replacing it, since it is a security administration table rather than a business transactional table, and reporting against it is still done directly or through the standard role maintenance transactions.

Common pitfalls

  • An entry in AGR_USERS does not mean the user currently has the access -- TO_DAT may be in the past, and PFCG leaves expired rows in place rather than deleting them; cleanup depends on a periodic reorganisation job.
  • Absence of a row for a user and role is not proof the user lacks that access -- the user may hold the same authorization through a different role, through a composite role that wraps this single role, or through a profile assigned outside PFCG.
  • A row for a composite role does not tell you which authorization objects the user actually received -- composite roles carry no authorization values of their own, only the single roles nested inside them do, and those nested assignments are not visible directly in AGR_USERS.
  • Locked or deactivated user accounts still show unexpired role assignments here -- the lock flag in USR02 and the date validity in AGR_USERS are independent, so a fully locked user can still appear 'active' by AGR_USERS dates.
  • Restricting only on the date fields without checking whether the role's authorization profile was ever generated produces false confidence -- an assigned but never-generated role grants nothing at runtime even though the AGR_USERS row looks perfectly valid.
  • Treating this table as an audit trail of the assignment event is wrong -- it has no created-by or created-on field for the assignment itself; who assigned the role and when is found in change documents, not in AGR_USERS.

Whose problem this is

Role assignment is a security or GRC team decision, driven by an access request process, not a Basis task. Basis owns the technical table and the cleanup jobs that remove expired rows. When a business user disputes what access they hold, the security team is the first point of contact, not the functional module team.

Related SAP objects

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

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