How to read this document
Each area below states what the setting is, why a 64-instance estate should care, and — the load-bearing part — a mandatory / flexible split: what must be identical across every application to satisfy the standardization mandate, versus what can reasonably differ by app size or business need without creating drift risk.
Two evidence badges appear throughout:
Oracle-verified — confirmed this research pass against live docs.oracle.com / blogs.oracle.com pages, cross-checked by independent adversarial review, often corroborated by practitioner sources (Rittman Mead, Oracle Customer Connect).
Field guidance — established OAC/OBIEE administration practice, not re-verified against a live source this pass. Treat as a strong starting point, not a quoted Oracle standard — validate against your tenancy before writing it into a binding policy.
Violet callout boxes mark judgment calls: places where this document goes beyond what Oracle documents to recommend a specific standard. These are exactly the decisions worth taking to your governance board rather than assuming.
Identity & Access Management / SSO
This is the foundation everything else inherits. Get the identity domain topology and sign-on policy wrong once at the client level, and it's wrong identically in all 64 apps.
Oracle-verifiedAn OCI IAM identity domain is the container for users, groups, federation/provisioning, SSO configuration, and SAML/OAuth identity-provider administration — it carries the full security policy surface, including MFA, for the population it governs.
Recommended standard
Mandatory, client-wide
- One identity domain per environment tier (e.g. one for production, one shared for non-prod), federated once — never one domain per application
- An explicit, custom Sign-On Policy that mandates MFA for OAC sign-in specifically, applied identically to every tenant — do not rely on the shipped Console-scoped MFA policy to cover this
- One SSO/federation pattern (SAML2 or OIDC) with the corporate IdP, with identical attribute/claim mapping conventions reused for every app
- A single password/session policy baseline (rotation, complexity, inactivity timeout) applied to the shared domain(s)
Can vary per application
- Which application-role groups exist inside the shared domain (Area 02) — the domain topology stays fixed, the group membership doesn't
- Session timeout duration, where a genuine business case exists (e.g. a kiosk-mode reporting app vs. an analyst workbench) — but the mechanism and where it's set should stay consistent
Session idle-timeout for OAC is a frequently-asked configuration on Oracle's Customer Connect community, which suggests it's routinely left at a default that doesn't match client security policy — worth an explicit, documented value rather than an inherited default. Migrations from the legacy on-prem OAS identity stack (OAM/OID) to OCI IAM are also a well-documented pain point in practitioner discussion, particularly around which accounts retain administrator standing post-cutover — plan an explicit admin-continuity check into every one of the 64 cutovers rather than assuming it carries over cleanly.
OAC Roles & Role Hierarchy
Roles are the single highest drift-risk area in a 64-instance estate: they're trivial to improvise slightly differently in every app, and every downstream permission decision (catalog, data, semantic model) depends on them.
Oracle-verifiedOAC ships seven predefined application roles — BI Service Administrator, BI Data Model Author, BI Dataload Author, DV Content Author, BI Content Author, DV Consumer, and BI Consumer — each with a documented, specific permission scope, forming an explicit inheritance hierarchy (for example, DV Content Author indirectly carries BI Content Author, DV Consumer, and BI Consumer). Since a November 2023 platform update, OAC also supports granular standalone permissions — create/edit connections, datasets, dataflows, workbooks; scheduling with Bursting or Run-As User; export to documents; connections to specific OCI AI services — that can be assigned individually to custom application roles, rather than only inherited wholesale via the seven predefined roles.
Recommended standard
Mandatory, client-wide
- A single, named taxonomy of custom application roles built on top of the seven predefined roles — never inherited-only ad hoc per app
- Every custom role maps 1:1 to a named identity-domain group; group-based assignment only, no direct-to-user role grants, anywhere
- The November-2023 standalone-permission mechanism is the designated tool for one-off exceptions (e.g. a specific dataflow-scheduling need) — not a reason to create a new bespoke role per app
- A single register (spreadsheet, wiki, or better — code) of every role, its OAC permission scope, and its mapped identity-domain group, kept in one place for all 64 apps, not 64 separate lists
Can vary per application
- Which of the standard custom roles are actually populated with users in a given app — a small reporting app may only ever use two of the five defined roles
- Standalone-permission grants for genuinely app-specific exceptions, provided they're logged against the central register
Catalog & Content Permissions
The presentation catalog is where roles become lived experience — folder structure and permission grants are what a content author actually bumps into every day.
Oracle-verifiedCatalog permissions are assigned to application roles or individual users, and inheritance runs through role membership: a user inherits every permission of every role they belong to. Separately, OAC provides a “Custom” permission option that lets an admin grant a specific user authority to bypass a folder's own permission settings for a single item, without altering the folder's inherited permissions for anyone else — a targeted, auditable exception mechanism distinct from ordinary inheritance.
Recommended standard
Mandatory, client-wide
- Group/role-based catalog grants only — the item-level “Custom” bypass is reserved for documented, sign-off-required exceptions, never a routine substitute for correct role design
- A single top-level folder taxonomy convention (e.g.
/Shared/<Domain>/<App>/Dashboards|Reports|DataSets) applied identically across all 64 apps, so any admin can navigate any app's catalog without relearning structure - Personal folders remain personal — never a substitute for shared, governed content, and never used to hide production reporting logic from the standard review process
Can vary per application
- Depth of sub-folder structure below the standard top two levels, driven by an app's actual content volume
- Which specific custom roles are granted at which folder level (Area 02 governs the roles; this area governs where they're applied)
Data Security
Row-level and object-level security is the layer most likely to be quietly re-invented per application by whichever consultant built that particular semantic model — and the hardest drift to detect after the fact, because it fails silently as “correct-looking but wrong” numbers.
Field guidance — not independently re-verified this passEvery claim in this area comes from established OAC/OBIEE semantic-modeling practice rather than a source this research pass could confirm live. Validate specifics against current documentation before writing any of it into binding policy.
Row-level security / data filters
OAC's Semantic Modeler supports data filters defined against application roles (or, less desirably, individual users), typically driven by session variables populated at login from group membership or a mapping table — functionally the same pattern as RPD-based row-level security in OBIEE/OAS. The filter expression itself lives in the semantic model, not the catalog.
Object-level security
Presentation-layer objects (subject areas, tables, columns) can be hidden or exposed per application role at the semantic-model level, independent of catalog folder permissions — the two layers are frequently confused, and a common defect pattern is “fixing” a data-exposure problem in the catalog when the real leak is an object left visible in the semantic model.
Connection pool credentials
Connection pools can run under a single shared service account or pass through per-user database credentials. Shared-account pooling is simpler to operate and scales connection counts far better, but pushes all row-level enforcement into the semantic-model filter layer (since the database sees one identity); per-user credentials let the database itself enforce row security, at real cost to connection efficiency and administrative overhead of provisioning DB accounts per user.
Recommended standard
Mandatory, client-wide
- One connection-pool credential strategy (shared service account or per-user passthrough) decided once at the client level — mixing the two models across 64 apps makes the eventual security review unmanageable
- Data filters attached to application roles only, never to named individual users
- A single naming/documentation convention for filter session variables and initialization blocks, so any semantic-model reviewer can audit any app's row-level security the same way
Can vary per application
- The actual filter predicate logic and which dimension(s) it restricts — this is inherently business-specific
- Whether object-level security is needed at all for a given app's subject areas
System / Instance Settings
The day-one console settings each of the 64 instances ships with its own copy of — the easiest area to let drift silently because nobody re-checks a setting that was only ever touched once, at provisioning.
Oracle-verifiedAccess to manage system settings — via the Console or REST API — is gated behind the BI Service Administrator role or a custom role carrying the explicit “Manage System Settings” permission. OAC exposes REST APIs to programmatically view and manage system settings (including usage-tracking options), which means every setting in this section is automatable rather than a manual, per-instance click-through.
Recommended standard
Mandatory, client-wide
- One versioned script (using the System Settings REST API) that provisions every day-one setting identically across all 64 instances, run at provisioning and re-run to correct drift — never manual Console configuration as the source of truth
- A single custom application role, used only by the automation service account, holding “Manage System Settings” — not ad hoc BI Service Administrator grants to individual admins for this purpose
- Locale, timezone, currency, and date/number-format defaults fixed to one client standard (even where end users are geographically distributed — set the instance default centrally, let user-level locale preference handle the individual view)
- Custom branding/theme elements (logo, color scheme, favicon) standardized to the client's visual identity, applied via the same automation rather than per-app manual upload
Can vary per application
- Map/spatial layer configuration, where only a subset of apps do geospatial analysis
- DV console defaults that are genuinely tied to a specific app's usage pattern (e.g. default landing page)
Backup and snapshot policy belongs in this area operationally (see Area 09 for the full mechanics): Oracle's own recommendation is to snapshot both at significant checkpoints and on a regular cadence, with a hard platform ceiling of 40 snapshots retained online per instance and unlimited additional snapshots exportable to offline storage.
Network & Connectivity
Every one of the 64 apps eventually needs to reach an on-prem or OCI-resident data source — how that path is built is either standardized once or reinvented, and mis-invented, 64 times.
Field guidance — not independently re-verified this passOAC connects to on-premises or non-public data sources primarily via a Private Access Channel (a managed, OCI-side network path avoiding public internet exposure) or a Remote Data Gateway agent installed near the data source. Both require explicit allow-listing of source IPs/ports and, where the source sits in a customer VCN, peering or a dynamic routing gateway configuration.
Recommended standard
Mandatory, client-wide
- One connectivity pattern of record (Private Access Channel or Remote Data Gateway) per data-source category — e.g. “all on-prem Oracle DB sources use Gateway pattern X,” documented once, referenced by every app rather than re-decided per project
- A single, centrally-managed allow-list / firewall-rule change process, rather than 64 independent requests to the network team with 64 different naming conventions
- One VCN peering / routing topology reused across instances in the same region, not a bespoke network diagram per application
Can vary per application
- Which specific data sources an app actually connects to
- Gateway sizing/placement where genuine latency or data-residency constraints differ by app
Semantic Model Governance
The RPD-equivalent layer is where OAC gives you a genuine, Oracle-native answer to “how do we version and audit 64 sets of business logic” — arguably the strongest lever available for this program.
Oracle-verifiedOAC's Semantic Modeler stores each semantic model as a set of JSON files (Semantic Modeler Markup Language, SMML) that integrate natively with a Git repository — GitHub, GitLab, or Git on Oracle Visual Builder — for version control and multi-developer synchronization. Two connection methods are supported: HTTPS (via a GitHub personal access token) or SSH (via a key generated in OAC and registered with GitHub), with reusable named Git connection/user profiles for credentials, and each semantic model can point at a separate repository.
Recommended standard
Mandatory, client-wide
- Git-backed semantic modeling required for every one of the 64 applications, without exception — Oracle provides no other native versioning or audit trail for RPD-equivalent changes
- A single Git provider and a single authentication method (HTTPS token or SSH key), not a mix, so credential rotation and access review is one process, not 64
- One repo-per-model convention and one branching/PR-review workflow (e.g. feature branch → PR → review → merge to main → publish) applied identically everywhere
Can vary per application
- Model complexity, subject-area count, and modeling patterns themselves — the versioning discipline is standardized, the business content isn't
Auditing, Monitoring & Usage Tracking
Without a standardized audit and usage-tracking baseline, a fleet of 64 instances has no consistent way to answer “who changed what, and is anyone actually using this app” — both are exactly the questions a standardization program gets asked to answer.
Field guidance — not independently re-verified this passOAC's Usage Tracking feature, once enabled via System Settings, logs query-level activity (user, dashboard/analysis, run time, row counts) to a dedicated usage-tracking database schema, which can itself be modeled and reported on as an administrative subject area. Administrative actions (role changes, snapshot activity, system-setting changes) are separately traceable through Console/audit views and the REST API surface confirmed in Area 05. Integrating either stream with OCI Logging/Monitoring for centralized alerting is an OCI-platform integration pattern rather than an OAC-specific feature.
Recommended standard
Mandatory, client-wide
- Usage Tracking enabled on every one of the 64 instances, by default, at provisioning — not an opt-in left to individual app teams
- A single usage-tracking schema/reporting model reused across apps, so fleet-wide adoption and utilization reporting is one dashboard, not 64
- One alerting integration pattern for administrative actions (role/permission changes, system-setting changes) into whatever the client's central SIEM/monitoring stack is, applied uniformly
Can vary per application
- Retention period for usage data, where a specific app has a distinct compliance requirement
Fleet Lifecycle Management
This is the area that only exists because there are 64 of these, not one — patching, naming, and drift detection are non-questions at single-instance scale and existential ones at fleet scale.
Oracle-verifiedBackup/promotion is REST-API-automatable end to end: OAC exposes REST APIs to create, restore, register, delete, and monitor snapshots (BAR files) in OCI Object Storage, with granular, selective migration (everything, or specific content types only), a hard cap of 40 online snapshots per instance, and unlimited offline export to local filesystem or an Oracle Cloud storage bucket. This is the concrete building block a fleet-wide configuration-as-code and drift-detection program should be built on.
Recommended standard — automation baseline (Oracle-verified building blocks)
Mandatory, client-wide
- One centrally-scripted snapshot cadence (checkpoint + regular schedule) run identically across all 64 tenants via REST API — never manual per-instance Console snapshotting
- A uniform offline-export/retention policy, planned around the 40-online-snapshot ceiling being reached quickly across an active 64-instance estate
- A single service-account custom role (Area 02) used to run all fleet automation, rather than per-instance ad hoc admin grants
Beyond the confirmed snapshot/REST mechanics, a fleet of this size typically also needs: a fixed patch/update-window cadence per environment tier (Oracle applies OAC platform updates on a rolling schedule the client doesn't fully control, but the client's own maintenance-window scheduling and change-communication process around it should be identical for all 64 apps); a single instance-naming and OCI-tagging convention (environment, business domain, cost center) so the estate is queryable as one fleet rather than 64 one-offs; and a scripted drift-detection routine — periodically pulling each instance's system settings, role/permission definitions, and semantic-model Git state via REST API and diffing against the client-standard baseline defined in this document, flagging any instance that has silently diverged.
Capacity & Licensing Governance
At 64 instances, capacity decisions compound: a sizing mistake repeated 64 times is a budget-line problem, not a rounding error.
Oracle-verifiedOAC editions carry different default OCPU service limits: Professional Edition defaults to a maximum of 4 OCPUs; Enterprise Edition defaults to 40 OCPUs under Universal Credits, but only 4 under Pay-As-You-Go or trial billing. OCI Compartment Quotas are the official mechanism for capping how many OCPUs or user seats different teams/compartments can self-provision (documented example syntax: set analytics quota ee-ocpu-count to 10 in compartment MyEnterpriseCompartment). Under Universal Credits, capacity can be flexibly scaled only within a 1–16 OCPU range; fixed tiers of 24/36/52 OCPUs exist above that but are not flexibly scalable — moving between fixed tiers, or across a defined named-user band, requires standing up a new service instance and migrating content, not an in-place resize.
Recommended standard
Mandatory, client-wide
- One compartment-quota policy, set once via IAM policy statement, governing every app's self-provisioning ceiling — not per-app negotiation with Oracle support
- A single, documented size-class decision tree (e.g. small / medium / large app → fixed OCPU tier or flexible 1–16 range) decided at initial provisioning for all 64 apps, so nobody discovers the fixed-tier migration cliff after the fact
- A single edition choice (Professional vs. Enterprise) per use-case category, not decided ad hoc per project
Can vary per application
- The actual OCPU count or user-band assigned within the agreed size classes, driven by real usage
Decisions to take to the governance board
Every judgment call from the sections above, in one place — these are recommendations grounded in confirmed platform mechanics, not Oracle-prescribed defaults, and each is a real decision the client should make explicitly rather than inherit.
| Area | Decision needed | Why it can't just default |
|---|---|---|
| 01 · Identity | Author an explicit MFA-for-OAC sign-on policy | Shipped Console MFA policy does not cover application sign-in |
| 02 · Roles | Adopt one fixed custom-role taxonomy fleet-wide | No default group-to-role mapping exists; 64 apps will invent 64 taxonomies otherwise |
| 03 · Catalog | Pick the dev→test→prod promotion tool (snapshots vs. Content Publisher vs. Migration Manager) | Snapshots are not confirmed as Oracle's primary promotion mechanism — needs its own research |
| 04 · Data security | Pick one connection-pool credential model (shared vs. per-user) fleet-wide | Mixing models across 64 apps makes a future security review unmanageable |
| 06 · Network | Fix one connectivity pattern (Private Access Channel vs. Remote Data Gateway) per source category | Unverified this pass; wrong assumption has real perimeter-security consequences |
| 07 · Semantic model | Standardize Git auth method and branching workflow | Oracle supports both HTTPS and SSH; not mandating one invites drift in the strongest governance lever available |
| 09 · Fleet lifecycle | Approve the REST-API drift-detection design before fleet rollout | Proposed architecture, not an Oracle-published pattern — pilot first |
| 10 · Capacity | Agree the app size-class → OCPU-tier decision tree before provisioning the rest of the 64 | Fixed-tier and user-band changes require a full migration event, not a resize |
Research gaps — recommended follow-up
These returned no independently-verified claim in this research pass despite being explicitly in scope. The field guidance sections above are a reasonable working start, not a substitute for confirming them directly.
- Oracle's (and practitioner) actual recommended pattern for row-level security / data-filter implementation, and for connection-pool credential strategy (shared service account vs. per-user)
- Documented patterns for OAC network connectivity at multi-tenant scale — Private Access Channel setup, on-prem allow-listing, Remote Data Gateway standardization — and how to avoid per-instance network drift
- Oracle's actual official position on the preferred content-promotion tool for dev/test/prod lifecycles — snapshots vs. Content Publisher vs. Migration Manager vs. the Baseline Validation Tool
- Oracle-published or practitioner guidance specifically on configuration-drift detection across 50+ OAC instances, beyond the individual REST API building blocks confirmed here
Primary sources
Every Oracle-verified claim in this document traces to a live-fetched page as of 14 July 2026, cross-checked by independent adversarial review. OAC's permissions model changed materially as recently as November 2023 — re-validate this document against Oracle's release notes periodically rather than treating it as permanently current.
- Predefined Application Roles — Oracle Analytics Cloud documentation
- Managing Permissions in Oracle Analytics Cloud — Oracle Analytics blog
- Permissions reference — Oracle Analytics Cloud documentation
- Understanding Application Roles in Oracle Analytics — Oracle Analytics blog
- Identity Domains — OCI IAM documentation
- Managing Sign-On Policies — OCI IAM documentation
- MFA and Sign-On Policy — OCI security reference
- Assign Access Permissions — Oracle Analytics Cloud documentation
- Permission Inheritance for Application Roles — Oracle Analytics Cloud documentation
- Migrating Oracle Analytics Cloud Using Snapshots — Oracle Analytics Cloud documentation
- Scheduling Regular Snapshots — Oracle Analytics Cloud documentation
- Managing Snapshots Using REST APIs — Oracle Analytics Cloud documentation
- Configuring Oracle Analytics Cloud — Oracle admin guide (PDF)
- Automate Snapshot and Data File Migration Using OAC REST APIs — Oracle Analytics blog
- Integration of OAC Semantic Modeller with GitHub — Oracle Analytics blog
- Semantic Modeler Markup Language (SMML) — Oracle Analytics Cloud documentation
- OAC Semantic Modeler and Version Control with Git — Rittman Mead
- OAC Semantic Modeller and the SMML Language — Rittman Mead
- OAC Developer-Controlled BI Cache Settings — Oracle A-Team Chronicles
- Administering Oracle Analytics Cloud on OCI (Gen 2) — Oracle admin guide (PDF)
- Service Quotas — Oracle Analytics Cloud documentation
- Scaling — Oracle Analytics Cloud documentation
- OAC: Scale Up or Down — Rittman Mead
- “Need a lower role than BI Service Administrator...” — Oracle Cloud Customer Connect
- “Upgrading from OAM/OID to IAM — problem with Administrators in OAS” — Oracle Cloud Customer Connect
- “Setup inactive session time-out for OAC” — Oracle Cloud Customer Connect