Skip to content
1Trooper
SQL Guru

Retrieving Role, Duty Role, and Privileges Navigation Path in Oracle Fusion BI Report with SQL Query

By Updated December 23, 20252 min read
Oracle Fusion BI Report with SQL Query

The following Oracle Fusion SQL query enables administrators and auditors to retrieve the complete hierarchy of Job Roles, Duty Roles, and associated Privileges, along with the navigation path that defines their interrelationships.

This query is particularly useful in Oracle Fusion BI Reports to analyze access governance, track inherited security relationships, and ensure compliance with internal control frameworks.

SQL Query

SELECT DISTINCT
    "C"."Job Role id",
    "C"."Job Role Name",
    "C"."Duty Role id",
    (SELECT "ASE_ROLE_VL"."ROLE_NAME"
     FROM "FUSION"."ASE_ROLE_VL" "ASE_ROLE_VL"
     WHERE "ASE_ROLE_VL"."ROLE_ID" = "C"."Duty Role id") AS "Duty Role Name",
    "ASE_PRIV_ROLE_MBR"."PRIVILEGE_ID" AS "PRIVILEGE_ID",
    (SELECT "ASE_PRIVILEGE_VL"."NAME"
     FROM "FUSION"."ASE_PRIVILEGE_VL" "ASE_PRIVILEGE_VL"
     WHERE "ASE_PRIVILEGE_VL"."PRIVILEGE_ID" = "ASE_PRIV_ROLE_MBR"."PRIVILEGE_ID") AS "Privilege_name",

    “C”.”Navigation path”

FROM (

    SELECT
        "B"."Job_Role_id1" AS "Job Role id",
        (SELECT "ASE_ROLE_VL"."ROLE_NAME"
         FROM "FUSION"."ASE_ROLE_VL" "ASE_ROLE_VL"
         WHERE "ASE_ROLE_VL"."ROLE_ID" = "B"."Job_Role_id1") AS "Job Role Name",
        "B"."Duty_Role_id1" AS "Duty Role id",

        “B”.”Navigation_path1″ AS “Navigation path”

    FROM (

        SELECT
            "A"."Job_Role_id" AS "Job_Role_id1",
            "A"."Duty_Role_id" AS "Duty_Role_id1",
            (SELECT "ASE_ROLE_TYPE_VL"."ROLE_TYPE_NAME"
             FROM "FUSION"."ASE_ROLE_TYPE_VL" "ASE_ROLE_TYPE_VL"
             WHERE "ASE_ROLE_TYPE_VL"."ROLE_TYPE_CODE" =
                 (SELECT "ASE_ROLE_VL"."ROLE_TYPE_CODE"
                  FROM "FUSION"."ASE_ROLE_VL" "ASE_ROLE_VL"
                  WHERE "ASE_ROLE_VL"."ROLE_ID" = "A"."Job_Role_id")) AS "JOB_ROLE_TYPE_NAME",
            (SELECT "ASE_ROLE_TYPE_VL"."ROLE_TYPE_NAME"
             FROM "FUSION"."ASE_ROLE_TYPE_VL" "ASE_ROLE_TYPE_VL"
             WHERE "ASE_ROLE_TYPE_VL"."ROLE_TYPE_CODE" =
                 (SELECT "ASE_ROLE_VL"."ROLE_TYPE_CODE"
                  FROM "FUSION"."ASE_ROLE_VL" "ASE_ROLE_VL"
                  WHERE "ASE_ROLE_VL"."ROLE_ID" = "A"."Duty_Role_id")) AS "DUTY_ROLE_TYPE_NAME",

            “A”.”Navigation_path” AS “Navigation_path1”

        FROM (

            (SELECT DISTINCT 

                CONNECT_BY_ROOT “ASE_ROLE_ROLE_MBR”.”CHILD_ROLE_ID” AS “Job_Role_id”,

                “ASE_ROLE_ROLE_MBR”.”PARENT_ROLE_ID” AS “Duty_Role_id”,

                SYS_CONNECT_BY_PATH(

                    (SELECT “ASE_ROLE_VL”.”ROLE_NAME”

                     FROM “FUSION”.”ASE_ROLE_VL” “ASE_ROLE_VL”

                     WHERE “ASE_ROLE_VL”.”ROLE_ID” = “ASE_ROLE_ROLE_MBR”.”PARENT_ROLE_ID”), 

                ‘ -> ‘) AS “Navigation_path”

            FROM “FUSION”.”ASE_ROLE_ROLE_MBR” “ASE_ROLE_ROLE_MBR”

            WHERE (“ASE_ROLE_ROLE_MBR”.”EFFECTIVE_END_DATE” >= SYSDATE 

                   OR “ASE_ROLE_ROLE_MBR”.”EFFECTIVE_END_DATE” IS NULL)

            CONNECT BY PRIOR “ASE_ROLE_ROLE_MBR”.”PARENT_ROLE_ID” = “ASE_ROLE_ROLE_MBR”.”CHILD_ROLE_ID”)

            UNION

            (SELECT 

                “ASE_ROLE_VL”.”ROLE_ID” AS “Job_Role_id”,

                “ASE_ROLE_VL”.”ROLE_ID” AS “Duty_Role_id”,

                ‘ -> ‘ || “ASE_ROLE_VL”.”ROLE_NAME” AS “Navigation_path”

             FROM “FUSION”.”ASE_ROLE_VL” “ASE_ROLE_VL”

             WHERE (“ASE_ROLE_VL”.”EFFECTIVE_END_DATE” >= SYSDATE 

                    OR “ASE_ROLE_VL”.”EFFECTIVE_END_DATE” IS NULL))

        ) “A”

    ) “B”

    WHERE (“B”.”JOB_ROLE_TYPE_NAME” LIKE ‘%Duty Roles%’ 

        OR “B”.”DUTY_ROLE_TYPE_NAME” LIKE ‘%Duty Roles%’)

) “C”,

“FUSION”.”ASE_PRIV_ROLE_MBR” “ASE_PRIV_ROLE_MBR”

WHERE “ASE_PRIV_ROLE_MBR”.”ROLE_ID” = “C”.”Duty Role id”

AND UPPER(“C”.”Job Role Name”) LIKE UPPER(:P_NAME);

Query Overview

This SQL query performs a recursive traversal of Oracle Fusion’s role hierarchy to extract:

  • Job Role → Duty Role → Privilege relationships
  • Navigation path illustrating how roles inherit privileges through multiple levels
  • Effective role hierarchy based on EFFECTIVE_END_DATE conditions

It joins core Oracle Fusion security tables such as:

  • ASE_ROLE_ROLE_MBR: Stores parent-child role relationships.
  • ASE_ROLE_VL: Contains role details and type codes.
  • ASE_PRIV_ROLE_MBR: Links roles to their corresponding privileges.
  • ASE_PRIVILEGE_VL: Provides privilege names and metadata.

Business Use Case

This query is invaluable for:

  • Access Governance: Understanding how privileges flow from job roles down to individual duty roles.
  • SoD Analysis (Segregation of Duties): Identifying where privilege overlaps may cause conflicts.
  • Compliance and Audit: Providing detailed lineage of access entitlements.
  • Security Model Reviews: Visualizing navigation paths between job roles, duty roles, and privileges for validation or redesign.

Organizations using this query can enhance their visibility into user role composition, simplify security audits, and strengthen access governance across Oracle Fusion Cloud applications.

  • Access Governance
  • Duty Roles
  • Fusion BI
  • Oracle Fusion
  • Privileges
  • Role Hierarchy
  • SQL Query
  • sqlguru.ai
  • sqlguru.ai blog

Related articles

SQL Guru

From Data to Decisions: Simplifying Oracle Cloud ERP SQL Querying with SQLGuru.ai

In the high-stakes world of enterprise operations, data is more than a resource; it’s the foundation for every business decision. Yet for many organizations running Oracle Cloud ERP, there is a persistent gap between having access to data and actually using it effectively. The challenge isn’t the data itself; it’s the complexity of performing an…

1TRS (1Trooper Risk Services)

Oracle Cloud ERP SQL Query vs. Traditional Reporting: Redefining Enterprise Business Intelligence

Enterprise decision-making depends on accurate, timely, and actionable insights. Oracle Cloud ERP provides multiple ways to access data, most commonly through traditional reports and SQL queries. While both approaches play important roles, understanding their strategic impact is essential. The comparison between Oracle Cloud ERP SQL Query and traditional reporting highlights how enterprises can redefine business intelligence in the digital era. Traditional ERP…

SQL Guru

SQL Query for Oracle Cloud ERP: Turning Enterprise Data into Strategic Intelligence

In today’s enterprise landscape, data is more than an operational byproduct, it’s a strategic advantage. Oracle Cloud ERP generates massive volumes of transactional and operational data every day. The real challenge, however, is transforming that data into timely, actionable insight. This is where SQL Query for Oracle Cloud ERP becomes a critical capability for organizations seeking visibility, control, and informed decision-making. Unlike…