Search Results gms_security




Overview

GMS_SECURITY is a PL/SQL package owned by the APPS schema in Oracle E-Business Suite, classified in the ETRM repository as an "OTHER" API. It belongs to the Grants Management (GMS) product family and encapsulates the row-level security model that governs access to award and grant records. The package determines whether the currently logged-in user is permitted to query or update a specific award, based on the security level and personnel assignments established in the Grants Management setup. It is declared AUTHID CURRENT_USER, meaning its unqualified references resolve against the privileges and synonyms visible to the invoking schema rather than to APPS, which is consistent with a shared security utility called from multiple GMS components. Rather than exposing the underlying security rules directly, GMS_SECURITY centralizes them behind a small, stable interface so that forms, concurrent programs, and custom extensions enforce identical access decisions.

Key Procedures and Functions

  • Initialize — Session entry point. Called once per user session to populate the package globals (G_user_id, G_person_id, G_module_name, G_query_allowed, G_update_allowed) with the calling user's identity and the name of the invoking module. No security check is meaningful before this call executes.
  • allow_query — Returns a VARCHAR2 flag indicating whether the current user may query the specified award. It is the authoritative test behind query-only and read access in GMS windows.
  • allow_update — Returns a VARCHAR2 flag indicating whether the current user may modify the specified award. This is the function matched by the search term "allow_update" and is the counterpart to allow_query for write access. Both functions carry the pragma RESTRICT_REFERENCES (WNDS, WNPS), so they read no database state and write no package state, making them safe to call from SQL and from other purity-constrained contexts.
  • set_value — Accepts a security level and a corresponding value and applies them to the package state, allowing the calling module to adjust the effective security level for the session.
  • check_key_member — Determines whether the given person is a key member of the specified award, supporting personnel-based access rules such as award team membership. It also carries the RESTRICT_REFERENCES pragma.

Tables Accessed

The documented table references resolve through APPS synonyms to GMS_PERSONNEL and DUAL. GMS_PERSONNEL supplies the personnel or award-team assignment data used by check_key_member and by the update/query decisions to establish whether the current person is associated with the award. DUAL is used for single-row evaluations, consistent with the purity pragmas that prohibit the functions from reading database tables; the row-level rules are derived from GMS_PERSONNEL during initialization or from already-loaded package state. No INSERT, UPDATE, or DELETE statements against business tables are documented for this package, which is characteristic of a read-only security predicate layer. Write behavior is limited to the package-level globals modified by Initialize and set_value.

Usage Notes

GMS_SECURITY is a foundational dependency rather than a user-facing object. It is referenced by eight other packages in the ETRM inventory, and forms-based GMS windows typically invoke Initialize when a session or responsibility is established, then call allow_query and allow_update before displaying or committing award data. Because the functions are purity-constrained, custom code may safely call them in SQL statements, views, and Oracle Forms post-query triggers. Customizations should treat the undocumented global variables as internal state and interact only through the documented procedures; calling allow_update without a prior Initialize will not reflect the correct user context. The package behaves identically in EBS 12.1.1 and 12.2.2, as the underlying source header predates both releases.