🕵️ The Curious Case of the Read-Only User That Could Create Tables


In EBS, we often assume that a user named APPSRO is exactly what it sounds like—a read-only account. Recently, I came across an interesting privilege investigation that proved once again why assumptions and Oracle databases don't always agree.

What started as a simple privilege check turned into a deeper lesson on roles, effective privileges, and one subtle Oracle dictionary view that many DBAs overlook.


The Setup

The user was created with what appeared to be only read-related privileges.

CREATE USER APPSRO
DEFAULT TABLESPACE xxxx
TEMPORARY TABLESPACE TEMP;

GRANT CONNECT TO APPSRO;
GRANT RESOURCE TO APPSRO;
GRANT ADJ_SYS_VIEW_SELECT TO APPSRO;
GRANT ADJ_FULL_TAB_SELECT TO APPSRO;

GRANT UNLIMITED TABLESPACE TO APPSRO;
GRANT SELECT ANY TABLE TO APPSRO;
GRANT SELECT ANY SEQUENCE TO APPSRO;
GRANT SELECT ANY DICTIONARY TO APPSRO;
GRANT CREATE ANY SYNONYM TO APPSRO;
GRANT DEBUG CONNECT SESSION TO APPSRO;

Looking at these grants, the account appeared to be intended for read access.

Naturally, I expected the following statement to fail.

CREATE TABLE testread AS
SELECT *
FROM apps.some_table;

Instead...

Table created.

Wait...

How did a supposedly read-only user create a table?


First Suspect: Direct System Privileges

My first assumption was simple.

There must be a direct CREATE TABLE privilege.

So I checked:

SELECT privilege
FROM dba_sys_privs
WHERE grantee = 'APPSRO';

The output showed:

CREATE ANY SYNONYM
DEBUG CONNECT SESSION
SELECT ANY DICTIONARY
SELECT ANY SEQUENCE
SELECT ANY TABLE
UNLIMITED TABLESPACE

No CREATE TABLE.

To be absolutely certain:

SELECT *
FROM dba_sys_privs
WHERE grantee='APPSRO'
AND privilege='CREATE TABLE';

Result:

no rows selected

So the privilege wasn't granted directly.


Second Suspect: Roles

Maybe the privilege was inherited through a role.

Checking the assigned roles:

SELECT granted_role
FROM dba_role_privs
WHERE grantee='APPSRO';

Result:

RESOURCE
CONNECT
ADJ_SYS_VIEW_SELECT
ADJ_FULL_TAB_SELECT

The custom roles looked harmless.

That left one interesting candidate:

RESOURCE


The Plot Twist

To inspect what the RESOURCE role contained, I queried:

SELECT role,
       privilege
FROM role_sys_privs
WHERE role='RESOURCE';

The output immediately solved the mystery.

RESOURCE  CREATE CLUSTER
RESOURCE  CREATE INDEXTYPE
RESOURCE  CREATE OPERATOR
RESOURCE  CREATE PROCEDURE
RESOURCE  CREATE SEQUENCE
RESOURCE  CREATE TABLE
RESOURCE  CREATE TRIGGER
RESOURCE  CREATE TYPE

There it was.

CREATE TABLE.

The privilege wasn't granted directly to the user.

It was inherited through the RESOURCE role.


Session Privileges Never Lie

To confirm what Oracle actually allowed during the session:

SELECT privilege
FROM session_privs
ORDER BY privilege;

The output included:

CREATE TABLE
CREATE PROCEDURE
CREATE TRIGGER
CREATE TYPE

Even though DBA_SYS_PRIVS showed no direct grant, Oracle clearly allowed table creation because SESSION_PRIVS reflects the effective privileges available in the current session.

This is one of my favorite Oracle views during privilege investigations.

When someone asks,

"What can this user actually do?"

SESSION_PRIVS usually provides the quickest answer.


Why the CTAS Worked

When Oracle executed:

CREATE TABLE testread AS
SELECT *
FROM apps.some_table;

it validated three requirements.

CREATE TABLE
(via the RESOURCE role)

SELECT ANY TABLE
(to read the source table)

UNLIMITED TABLESPACE
(to allocate storage)

Since all three conditions were satisfied, Oracle created the table successfully.


Bonus Discovery: ROLE_SYS_PRIVS Doesn't Show Every Role

While testing the solution, I revoked the RESOURCE role.

REVOKE RESOURCE FROM APPSRO;

Then I reran the same query:

SELECT role,
       privilege
FROM role_sys_privs
WHERE role='RESOURCE';

To my surprise, Oracle returned:

no rows selected

At first, I wondered whether someone had modified the RESOURCE role.

But then I revisited the Oracle documentation for ROLE_SYS_PRIVS.

It states:

Information is provided only about roles to which the user has access.

That small sentence explains everything.

Before the revoke:

  • APPSRO had access to the RESOURCE role.

  • ROLE_SYS_PRIVS displayed the role's privileges.

After the revoke:

  • APPSRO no longer had access to RESOURCE.

  • Oracle filtered the view.

  • The role still existed in DBA_ROLES, but ROLE_SYS_PRIVS no longer displayed its privileges.

This is a subtle behavior that's easy to overlook during privilege investigations.


The Bigger Lesson

This investigation wasn't really about CREATE TABLE.

It was about understanding where Oracle gets a user's privileges.

No single dictionary view tells the complete story.

Each answers a different question.

ViewAnswers
SESSION_PRIVSWhat can this session actually do?
DBA_SYS_PRIVSWhat system privileges are granted directly to the user?
DBA_ROLE_PRIVSWhich roles are granted to the user?
ROLE_SYS_PRIVSWhat system privileges are granted to roles that the current user can access?

Understanding the purpose of each view makes privilege troubleshooting much easier.


A Handy Diagnostic Checklist

Whenever I troubleshoot Oracle privilege issues, I usually start with these queries.

-- Current user
SHOW USER;

-- Effective session privileges
SELECT privilege
FROM session_privs
ORDER BY privilege;

-- Direct system privileges
SELECT *
FROM dba_sys_privs
WHERE grantee='APPSRO';

-- Granted roles
SELECT *
FROM dba_role_privs
WHERE grantee='APPSRO';

-- System privileges contained in accessible roles
SELECT role,
       privilege
FROM role_sys_privs
ORDER BY role, privilege;

These four queries answer almost every privilege-related question.


Final Takeaway

This investigation started with a simple question:

"Why can a read-only user create tables?"

The answer wasn't hidden in DBA_SYS_PRIVS.

It wasn't obvious from the user definition.

It was buried inside a role.

Along the way, I also learned something I hadn't paid much attention to before:

ROLE_SYS_PRIVS only shows the system privileges of roles that the current user can access.

That small detail completely explained why the view's output changed immediately after revoking the RESOURCE role.

Sometimes the most valuable lessons come not from solving the original problem, but from discovering how Oracle's privilege model really works.

And that's what makes troubleshooting so rewarding.

OCI Base Database Service: Boot Volume Backups Explained – What Every DBA Should Know

 When managing Oracle Base Database Service (DBCS) on Oracle Cloud Infrastructure (OCI), most DBAs focus on database backups, Recovery Manager (RMAN), and recovery strategies. However, one equally important component is often overlooked—the Boot Volume.

A common misconception is that a Boot Volume Backup protects the entire database environment. In reality, it only safeguards the operating system, while your database requires a completely different backup strategy.

This article explains what Boot Volume Backups are, what they protect, when they should be used, and when they are unnecessary.


What is a Boot Volume in OCI Base Database Service?

A Boot Volume is the operating system disk attached to your Base Database Service virtual machine. It is typically presented to the operating system as the sda device.

The boot volume contains:

  • Oracle Linux operating system

  • System libraries

  • Operating system configuration

  • Installed OS packages

  • Security agents and monitoring tools

  • Kernel and boot-related files

It does NOT contain:

  • Database data files

  • Redo logs

  • Control files

  • Fast Recovery Area (FRA)

  • Oracle Database Home binaries

Think of it this way:

Boot Volume = Operating System
Database Backup = Database

These are two separate layers, each requiring its own protection strategy.


Why Are Boot Volume Backups Important?

Boot Volume Backups provide a recovery point for the operating system. If the OS becomes unusable, the backup allows Oracle to restore the VM to a previously healthy state.

Typical scenarios include:

  • Operating system corruption

  • Failed kernel updates

  • Failed RPM installations

  • Accidental deletion of system files

  • Boot failures

  • OS instability after configuration changes

Instead of rebuilding the operating system from scratch, the boot volume can be restored to a known-good state, significantly reducing recovery time.


Do Boot Volume Backups Protect My Database?

No.

This is one of the biggest misconceptions.

A Boot Volume Backup protects only the operating system. It does not include any database content.

To protect your database, continue using:

  • Oracle-managed automatic database backups

  • Oracle-managed on-demand database backups

  • Customer-managed manual backups

If your objective is recovering database data, Boot Volume Backups are not the solution.


When Should You Consider a Boot Volume Backup?

Although Oracle automatically manages Boot Volume Backups for Base Database Service, it is useful to understand when having a recent backup is especially valuable.

Recommended before:

  • Operating system patching

  • Kernel updates

  • RPM package installations or updates

  • Network configuration changes

  • Firewall modifications

  • SSH configuration updates

  • Changes to sysctl.conf

  • Updates to limits.conf

  • Installing Vulnerability Scanners

  • Deploying EDR or Antivirus agents

  • Troubleshooting unstable operating systems

  • Major OS-level maintenance activities

Any change that affects the operating system layer increases the value of having a recent Boot Volume Backup.


When Is a Boot Volume Backup NOT Required?

Boot Volume Backups should not be considered a replacement for database backups.

They are unnecessary for activities such as:

  • Database parameter changes

  • Schema modifications

  • Application deployments

  • Tablespace operations

  • Data modifications

  • PL/SQL changes

  • Oracle Grid Infrastructure patching

  • Oracle Database Home patching

  • Database upgrades

  • DB System or node operating system upgrades (for example, Oracle Linux 7 to Oracle Linux 8)

These operations require proper database backup and recovery mechanisms instead.


Can Boot Volume Backups Help During Malware or Ransomware Incidents?

Yes—provided the compromise is limited to the operating system.

If malware or ransomware affects the OS layer, restoring from a clean Boot Volume Backup provides a faster recovery path compared to rebuilding the operating system.

It is important to remember that this does not recover encrypted or corrupted database files. Database recovery still depends on database backups.


Do Boot Volume Backups Help Meet Compliance Requirements?

Yes.

Many security and governance frameworks recommend maintaining recoverable operating system images to support disaster recovery and operational resilience.

Having recent Boot Volume Backups helps organizations demonstrate that operating system recovery procedures are in place.


How Frequently Are Boot Volume Backups Taken?

For OCI Base Database Service:

  • Automatic Boot Volume Backups are taken weekly.

  • Automatic backups are retained for 7 days.

Oracle manages this process automatically.


Can Customers Trigger a Boot Volume Backup?

Currently, No.

There is no customer-facing API or Console option to initiate an on-demand Boot Volume Backup for OCI Base Database Service.

If an immediate Boot Volume Backup is required, customers must raise a Service Request (SR) with Oracle Base Database Support.


What Is the Retention Period?

OCI Base Database Service currently follows these retention rules:

Backup TypeRetention
Automatic Boot Volume Backup7 Days
On-Demand Boot Volume BackupDoes not expire by default (Oracle typically requests a retention timeline)

A few important limitations:

  • Multiple ad hoc Boot Volume Backup copies are not supported.

  • Creating a new Boot Volume Backup for the same node replaces the previous one.

  • There is currently no option to retain on-demand Boot Volume Backups indefinitely.


Boot Volume Backup vs Database Backup

Boot Volume BackupDatabase Backup
Protects operating systemProtects database
Includes kernel and OS configurationIncludes data files
Includes installed agentsIncludes redo logs
Includes system packagesIncludes control files
Used for OS recoveryUsed for database recovery

Both are important—but they solve different recovery problems.


How Do Boot Volume Backups Help During Failed OS Changes?

Suppose an operating system update results in:

  • Kernel panic

  • Boot failure

  • Broken networking

  • Firewall misconfiguration

  • Security agent startup failures

  • Loss of SSH access

Instead of rebuilding the operating system manually, Oracle can restore the Boot Volume Backup, returning the VM to its previous working state.

This significantly reduces downtime during OS-related incidents.


Can Customers Restore a Boot Volume Themselves?

Currently, No.

OCI Base Database Service does not provide self-service Boot Volume restore functionality.

To perform a restore, customers must open a Service Request (SR) with Oracle Base Database Support.


Quick Reference





Final Thoughts

Boot Volume Backups are an essential part of the overall recovery strategy for OCI Base Database Service—but they serve a very specific purpose.

They are designed to protect the operating system, not the database.

Understanding this distinction helps DBAs make informed decisions during maintenance, troubleshooting, and disaster recovery planning.

The key takeaway is simple:

  • Use Boot Volume Backups to recover the operating system.

  • Use database backups to recover your database.

Together, these two layers provide comprehensive protection for your OCI Base Database Service environment.

Oracle E-Business Suite 12.2 Next Generation Technology Stack: Understanding the Special Online Patching Cycle

In my previous article, I introduced Oracle's 𝗡𝗘𝗫𝗧 𝗚𝗘𝗡𝗘𝗥𝗔𝗧𝗜𝗢𝗡 𝗧𝗘𝗖𝗛𝗡𝗢𝗟𝗢𝗚𝗬 𝗦𝗧𝗔𝗖𝗞 for Oracle E-Business Suite Release 12.2 and discussed the move to modern components such as WebLogic 14c, Oracle Fusion Middleware 14c, and Java 17.

While reviewing Oracle's documentation, I came across another interesting enhancement—not to the technology itself, but to the upgrade process.

Oracle has introduced a Special Online Patching Cycle that is used exclusively for upgrading to the Next Generation Technology Stack.

A Special Online Patching Cycle

It's important to clarify that Oracle has not changed the standard Online Patching (ADOP) cycle used for everyday patching and maintenance.

The familiar workflow remains:

Prepare → Apply → Finalize → Cutover → Cleanup

However, when upgrading from the Classic Technology Stack to the Next Generation Technology Stack, Oracle provides a dedicated online patching workflow.

In this special upgrade cycle, the traditional Apply phase is replaced by Technology Stack Update Assistant (TSUA).

The workflow becomes:

Prepare → TSUA → Finalize → Cutover → Cleanup → Synch

This workflow is designed specifically for the one-time migration to the Next Generation Technology Stack.

What is TSUA?

The Technology Stack Update Assistant (TSUA) is a new Oracle utility introduced specifically to simplify the migration from the Classic Technology Stack to the Next Generation Technology Stack.

Instead of using the standard Apply phase during this one-time migration, Oracle leverages TSUA as part of the Special Online Patching Cycle to automate and orchestrate the technology stack upgrade.

Behind the scenes, TSUA performs several critical tasks that would otherwise require significant manual effort, including:

  • Validates the environment by performing prerequisite checks and ensuring the system is ready for the upgrade.
  • Creates backups and installs the Next Generation Technology Stack software from the staged media.
  • Updates the application tier directory structure to align with the new technology stack.
  • Reconfigures the EBS middleware environment, including:
    • Updating the Oracle WebLogic Server (WLS) domain
    • Creating the Oracle HTTP Server (OHS) domain
    • Configuring the required Node Managers
  • Applies the migration patch along with any required co-requisite patches.
  • Regenerates Oracle Forms and Reports to ensure compatibility with the upgraded technology stack.

After TSUA completes successfully, the remaining online patching phases continue with:

  • Finalize
  • Cutover
  • Cleanup
  • Synch

Why Did Oracle Introduce This?

According to Oracle, this special online patching cycle is intended to make the technology stack migration:

  • Less disruptive
  • More streamlined
  • Capable of keeping users productive for most of the upgrade process
  • Simpler than performing a traditional EBS technology stack upgrade

Because the update leverages Online Patching, organizations can migrate to the Next Generation Technology Stack without requiring a major EBS upgrade.

Final Thoughts

One important point to remember is that TSUA does not replace the standard Apply phase for normal Oracle E-Business Suite patching.

Instead, it is part of a special online patching workflow introduced exclusively for migrating to the Next Generation Technology Stack.

This distinction is important for EBS administrators. Your regular ADOP patching process remains unchanged. TSUA comes into play only when performing the one-time transition from the Classic Technology Stack to Oracle's Next Generation Technology Stack.

As Oracle continues to modernize EBS 12.2, understanding this new upgrade workflow will help administrators plan and execute their technology stack migration with confidence.

Why File Storage Service Matters in OCI: Understanding the Right Storage Choice for Shared Files

Introduction

One of the most common questions during OCI architecture discussions is:

"Why can't we simply use Object Storage or Block Volumes if applications need shared storage?"

At first glance, all storage services appear to solve the same problem: storing files and data. However, the way applications access those files makes a significant difference.

Many enterprise applications require multiple servers to access the same files simultaneously, including:

  • Oracle E-Business Suite environments
  • Web applications
  • Middleware platforms
  • Analytics solutions
  • Content management systems
  • Custom enterprise applications

These applications expect a traditional shared filesystem where files can be created, modified, and accessed concurrently by multiple servers.

This is where OCI File Storage Service (FSS) becomes important.

OCI FSS provides a shared, NFS-based filesystem that allows multiple compute instances to access the same files simultaneously without requiring application changes.
Storage Choice Common Assumption What Administrators Discover Later Operational Impact
Object Storage Services "It stores files and costs less, so it can replace shared storage." Applications cannot use it like a regular Linux filesystem. File locking and directory operations are unavailable. Application redesign or additional integration effort may be required.
Shared Block Volumes "One volume can simply be attached everywhere." Multiple servers writing simultaneously can damage the filesystem unless specialized clustering technology is used. Data consistency risks and increased administration effort.
Instance-Local Storage "Local disks provide the fastest access." Data remains only on the local server and cannot be shared with other systems. Potential data loss during instance replacement or termination.
Database-Based File Storage "The database already exists, so documents can be stored there." Large files increase database size, backup duration, and recovery complexity. Higher database costs and reduced operational efficiency.
Self-Managed NFS Server "Building our own file server is straightforward." The NFS server becomes critical infrastructure requiring backups, patching, and monitoring. Additional administration effort and possible single points of failure.
Object Storage Mount Utilities "Mounting object storage makes it behave like a filesystem." Applications may experience latency, inconsistent metadata, and compatibility issues. Unpredictable behavior during heavy workloads.

Understanding the Oracle E-Business Suite 12.2 Technology Stack

 Oracle E-Business Suite (EBS) is one of the most widely deployed enterprise applications across industries. Behind every EBS environment is a collection of technology components that work together to deliver business functionality, manage user requests, and communicate with the database tier. This collection of components is known as the Oracle E-Business Suite Application Technology Stack.

What is the EBS Application Technology Stack?

The Application Technology Stack consists of the software components installed on the EBS application tier. These components are responsible for processing business logic, serving web pages, running forms and reports, and enabling communication between end users and the database.

For Oracle E-Business Suite Release 12.2, the technology stack includes:

  • Oracle Fusion Middleware (FMW)

  • Oracle WebLogic Server (WLS)

  • Oracle HTTP Server (OHS)

  • Oracle Developer (Forms and Reports)

  • Java Development Kit (JDK)

Together, these components provide the foundation required to run EBS applications efficiently and securely.

The Classic Technology Stack

Since the release of EBS 12.2, most environments have been running on what Oracle refers to as the Classic Technology Stack. This stack is built on Oracle Fusion Middleware 11g and Java 7.

The certified component versions are:

ComponentCertified Release
Oracle Fusion Middleware (FMW)11.1.1.9
Oracle WebLogic Server (WLS)10.3.6
Oracle HTTP Server (OHS)11.1.1.9
Oracle Developer (Forms and Reports)10.1.2
Java Development Kit (JDK)7

For many years, this technology stack has provided a stable and reliable platform for Oracle E-Business Suite deployments worldwide.

The Next Generation Technology Stack

As technology evolves, Oracle is modernizing the EBS application tier with a newer and more secure technology foundation known as the Next Generation Technology Stack.

The planned certified releases include:

ComponentPlanned Certified Release
Oracle Fusion Middleware (FMW)14.1.2
Oracle WebLogic Server (WLS)14.1.2
Oracle HTTP Server (OHS)14.1.2
Oracle Developer (Forms and Reports)14.1.2
Java Development Kit (JDK)17

This modernization introduces newer middleware and Java versions that align with current enterprise standards, helping organizations improve security, maintainability, and long-term supportability.

Why Does This Matter?

Many EBS customers continue to run mission-critical workloads on Release 12.2. Understanding the differences between the Classic and Next Generation Technology Stacks is important when planning upgrades, security initiatives, and future platform strategies.

Moving to the Next Generation Technology Stack provides organizations with:

  • Modern middleware architecture

  • Support for Java 17

  • Enhanced security capabilities

  • Improved compatibility with current infrastructure standards

  • Better long-term support from Oracle


What About Support for the Classic Technology Stack?

One of the most common questions among Oracle E-Business Suite administrators is whether upgrading to the Next Generation Technology Stack is mandatory.

The answer is yes—if organizations want to remain aligned with Oracle's long-term support strategy.

Oracle has indicated that EBS Release 12.2 production environments are expected to move to the Next Generation Technology Stack to ensure continued supportability in the future. Once the Next Generation Technology Stack becomes generally available, Oracle will publish a detailed support timeline outlining key milestones and support dates.

How Long Will the Classic Technology Stack Be Supported?

At the time of writing, Oracle has not announced an end date for error correction support for the Classic Technology Stack. However, Oracle has stated that an updated support roadmap will be provided following the general availability of the Next Generation Technology Stack.

For organizations currently running the Classic Technology Stack, this means there is no immediate deadline to migrate. However, IT teams should begin evaluating the impact of the upgrade, reviewing infrastructure requirements, and planning their modernization roadmap to avoid future support challenges.

Planning Ahead

While the Classic Technology Stack remains fully functional today, the introduction of the Next Generation Technology Stack signals Oracle's strategic direction for EBS 12.2. Organizations that proactively prepare for the transition will be better positioned to:

  • Maintain Oracle support eligibility

  • Benefit from newer middleware and Java technologies

  • Improve security and compliance posture

  • Reduce technical debt

  • Simplify future upgrades and maintenance

The move to the Next Generation Technology Stack should therefore be viewed not only as a technology upgrade, but as an important step in ensuring the long-term sustainability of Oracle E-Business Suite environments.

Final Thoughts

The Oracle E-Business Suite 12.2 Application Technology Stack is the foundation that powers the application tier of EBS environments. While the Classic Technology Stack has served organizations well for years, Oracle's Next Generation Technology Stack represents the future direction of EBS technology.

Organizations running EBS 12.2 should begin evaluating their technology stack roadmap and prepare for the transition to the newer platform to take advantage of modern security, performance, and support capabilities.

OCI Block Volume Enforcement Update: What Every OCI Customer Should Know Before Launching New Instances

 Oracle has introduced an important enhancement to the way Oracle Corporation Cloud Infrastructure (OCI) validates Block Volume storage limits and quotas during Compute instance provisioning. While the update may appear operational in nature, it can directly impact infrastructure deployments if organizations are not prepared.

This change strengthens governance and capacity enforcement across OCI environments and ensures that storage consumption aligns with configured tenancy-level limits and compartment quotas.

What Has Changed?

Previously, when launching a Compute instance in OCI, the platform did not fully validate tenancy-level total_storage_gb limits and compartment quotas during the boot volume creation process.

As a result, certain instance launches could still succeed even if the configured storage thresholds had technically been exceeded.

With the latest OCI Block Volume service update, Oracle now enforces these validations before a boot volume is created during Compute instance provisioning.

If the requested boot volume size exceeds:

  • Tenancy-level Block Volume storage limits
  • Compartment-level storage quotas

the Compute instance launch will fail immediately with a quota or limit-related error.

This enhancement brings consistent enforcement behavior across OCI storage workflows and improves overall resource governance.


Why This Change Matters

In many OCI environments, administrators configure storage quotas and limits to:

  • Control cloud spending
  • Prevent uncontrolled resource growth
  • Segregate departmental resource usage
  • Enforce governance and compliance policies

Without strict validation during boot volume provisioning, there was a gap where deployments could unintentionally bypass those controls.

Oracle has now closed that gap.

For organizations using automation pipelines, Infrastructure-as-Code (IaC), Terraform, autoscaling, or dynamic provisioning, this update becomes especially critical because new deployments may unexpectedly fail if storage limits are not monitored properly.


What Is Impacted?

The enforcement applies only to workflows that create new boot volumes.

Affected Workflows

  • Launching new Compute instances
  • Autoscaling events that provision new instances
  • Automated deployment pipelines
  • Any workflow that creates new boot volumes

Not Affected

The following existing resources remain unaffected:

  • Existing boot volumes
  • Existing Block Volumes
  • Running Compute instances
  • Previously provisioned infrastructure

This means there is no disruption to currently running workloads.


Oracle’s Proactive Measures

To reduce operational impact, Oracle is proactively increasing capacity limits for affected tenancies where necessary before enabling strict enforcement.

This helps minimize unexpected failures for customers already operating close to their storage thresholds.

However, organizations should not rely solely on automatic adjustments and should independently review their storage configurations.

Strengthening Oracle Autonomous AI Database Security with Multi-Factor Authentication

 As organizations continue moving mission-critical workloads to the cloud, database security has become more important than ever. Password-based authentication alone is no longer sufficient to protect sensitive enterprise data from evolving cyber threats. To address this challenge, Oracle Autonomous AI Database now supports Multi-Factor Authentication (MFA), providing an additional layer of protection for database access and SQL execution.

What is MFA in Autonomous AI Database?

Multi-Factor Authentication enhances database security by requiring users to verify their identity using two separate authentication factors:

  • Something the user knows — typically a username and password
  • Something the user has — such as a one-time token, authenticator app, push notification, or secure verification mechanism

With MFA enabled, even if database credentials are compromised, unauthorized access becomes significantly more difficult.

Key MFA Capabilities

Oracle Autonomous AI Database provides flexible MFA options designed for modern enterprise environments:

1. MFA for Database Logins

Administrators can enforce MFA during user authentication to ensure only verified users can establish database sessions.

2. MFA for SQL Access

Organizations can require additional verification before executing sensitive SQL operations, adding another layer of protection for critical workloads.

3. Multiple Verification Methods

Oracle supports different MFA delivery channels, including:

  • Email-based verification
  • Authenticator applications
  • Push notifications
  • Slack-based token delivery

This flexibility allows enterprises to align MFA with their operational and security standards.

How Oracle Implements MFA

Oracle provides the DBMS_MFA_ADMIN package to simplify MFA administration. Database administrators can:

  • Register users for MFA
  • Configure token delivery channels
  • Enable or disable MFA policies
  • Manage token attributes and session validation

This package enables centralized MFA governance while maintaining operational simplicity.

Why MFA Matters for Cloud Databases

Cloud databases are constantly exposed to risks such as:

  • Credential theft
  • Password reuse attacks
  • Unauthorized privileged access
  • Insider threats

By introducing MFA, organizations can significantly reduce the attack surface and strengthen compliance with modern security frameworks and regulatory standards.

For enterprises hosting critical ERP, financial, healthcare, or customer data in Oracle Autonomous AI Database, MFA becomes an essential component of a defense-in-depth security strategy.

Additional Security Benefits in Oracle AI Database

Oracle continues to strengthen its database security portfolio with features such as:

  • TLS 1.3 support
  • SQL Firewall
  • Enhanced auditing
  • Stronger password policies
  • Improved encryption capabilities
  • IAM integration for centralized access control

Optimizing OCI IAM Policies Across Compartment Hierarchies

Oracle Cloud Infrastructure (OCI) Identity and Access Management (IAM) enables organizations to securely control access to cloud resources. A critical aspect of IAM in OCI is how policies behave within a compartment hierarchy, particularly in large-scale enterprise environments.

As OCI deployments grow, managing IAM policies effectively becomes essential to ensure scalability, compliance, and operational efficiency.

Understanding Policy Evaluation in a Hierarchy

OCI evaluates IAM policies from the root compartment down through each level of the compartment structure. Every policy statement attached to the root or to intermediate compartments contributes to the total number of statements evaluated along a path from the root to a specific leaf compartment.

Key implications of this model include:

  • Policies defined at the root compartment apply broadly and affect all child compartments.

  • Policies defined in lower-level compartments impact only their respective branches.

  • OCI enforces a limit of 500 policy statements per compartment hierarchy path.

If the accumulated policy statements along a path exceed this limit, operations such as creating, updating, or deleting policies may fail.

Why Policy Limits Matter

As organizations introduce additional compartments to segregate workloads, teams often create policies independently to meet their operational needs. Over time, this leads to:

  • Redundant policy statements

  • Overlapping access grants

  • Excessively granular permissions

  • Increased administrative complexity

When the total evaluated statements exceed the allowed limit, policy changes can fail unexpectedly, impacting governance and agility.

Best Practices for Managing IAM Policies

To maintain a scalable and efficient IAM framework, consider the following structured approach:

1. Eliminate Redundant or Unused Policies

Review existing policies for overlapping permissions. For example:

  • Avoid defining both read and manage permissions separately when manage already includes read.

  • Consolidate multiple statements granting similar permissions to the same group.

Periodic cleanup significantly reduces policy statement count.


2. Define Policies at the Appropriate Compartment Level

Root-level policies affect every branch of the hierarchy. Where possible:

  • Move policies closer to the target compartments.

  • Restrict scope to the minimum required hierarchy path.

This reduces unnecessary inheritance and keeps the evaluation path efficient.

3. Consolidate and Simplify Policy Statements

Instead of writing multiple narrowly scoped permissions, use broader resource families where appropriate. For example:

  • Replace multiple individual resource permissions with a single family-level permission.

  • Standardize policy patterns across business units.

Simplification improves both maintainability and scalability.

4. Leverage Tag-Based Access Control

Attribute-based access control using defined tags can significantly reduce policy sprawl. By applying consistent tagging strategies:

  • Policies can reference tags instead of compartments.

  • Access can scale without creating additional compartment-specific statements.

This approach supports large, dynamic environments effectively.

Conclusion

IAM policy management in OCI is not merely a configuration activity — it is a governance discipline. Understanding how policies accumulate within a compartment hierarchy is crucial to preventing operational constraints.

By removing redundancy, scoping policies appropriately, simplifying statements, and leveraging tag-based access control, organizations can maintain a secure, scalable, and efficient IAM framework.

Proactive policy governance today prevents scalability challenges tomorrow.

Understanding the OCI Policy Analysis Tool: An Overview

Managing identity and access in large Oracle Cloud Infrastructure (OCI) environments can be complex. As organizations scale, so does the number of compartments, groups, dynamic groups, and policy statements. Assessing who can do what—across thousands of permissions—can quickly become challenging, especially for administrators tasked with strengthening security and reducing risk.

To address these challenges, the OCI Policy Analysis Tool has emerged as an essential utility for OCI administrators and security practitioners. Designed to help visualize, interpret, and analyze OCI Identity and Access Management (IAM) policies, this tool provides clarity and insight into effective permissions across your cloud tenancy. 


What Is the OCI Policy Analysis Tool?

The OCI Policy Analysis Tool is an unofficial, open-source application targeted at users who need a deeper understanding of their OCI IAM posture. It goes beyond simple policy listing by loading all relevant identity and policy data and organizing it into a cohesive, searchable format. This empowers administrators to answer questions such as:

  • Which principals have excessive privileges in sensitive compartments?

  • Why is a particular service unable to perform an expected action?

  • How have policies changed over time? 

Built entirely with Python and leveraging the OCI Python SDK, the tool demonstrates how custom scripts and utilities can be authored to fill functional gaps and make cloud security operations more manageable. 


Key Capabilities and Features

Once loaded with the necessary data from your tenancy or a compliance extract, the OCI Policy Analysis Tool provides several analytical and visibility features:

  • Policy Browser: Explore and search policy statements across all compartments.

  • Policy Analysis: Filter and inspect parsed IAM policies, including subjects, actions, resources, and conditions.

  • Dynamic Group Insights: Review dynamic group matching rules to identify misconfigurations or unused groups.

  • User & Resource Principal Analysis: Determine effective permissions for users and resources based on group memberships.

  • Cross-Tenancy View: Analyze global policy statements such as Define, Admit, and Endorse.

  • Historical Comparison: Compare policy sets at different points in time to detect changes or anomalies.

These features are accessible through an intuitive, tabbed interface that helps administrators quickly locate information and understand complex relationships within IAM configurations. 


Additional Utility Functions

Beyond policy inspection, the tool offers usability enhancements that improve flexibility and extend analysis capabilities:

  • Caching: Load and save OCI policy and identity data locally for offline analysis.

  • Export / Import: Export analysis results to CSV or JSON for reporting or auditing.

  • Compliance Script Integration: Import data from standard compliance scripts to enrich policy insights.

  • AI-Assisted Insights: Receive natural-language explanations and risk annotations for policy statements.

  • Contextual Help: Each view provides embedded help to explain the relevance of data fields or features.


Advanced Analysis & Simulation

For deeper investigations, the tool also incorporates powerful extensions:

  • API Simulation: Test hypothetical API calls as specific principals to determine allowed or denied actions.

  • Policy Recommendations: Generate suggested remediation steps based on detected misconfigurations or over-privileged access patterns.

  • MCP Server Integration: Expose your OCI tenancy data to tools such as VS Code or generative AI systems for interactive analysis.


Getting Started

There are two main ways to run the OCI Policy Analysis Tool:

  1. Direct Python Execution:

    • Ensure Python 3.12 or newer is installed.

    • Create and activate a virtual environment.

    • Install the tool dependencies and run the UI program through Python.

    • Load your OCI configuration or authenticate using an instance principal. 

  2. Packaged Executable:

    • Download the binaries from the project’s GitHub releases.

    • Launch the platform-specific executable and follow on-screen prompts.

Once started, you can import tenancy data and begin exploring policies, dynamic groups, and user permissions from a consolidated view.


Conclusion

In complex OCI deployments, maintaining an accurate understanding of IAM policies and the effective permissions they grant is essential for security and compliance. The OCI Policy Analysis Tool provides administrators with a comprehensive way to visualize, analyze and assess policy configurations across an entire tenancy. Whether it’s identifying over-privileged users or tracking changes over time, this tool transforms raw policy data into actionable insights. 

Part 1 of this series focuses on the tool and how to get started; an upcoming Part 2 will explore the development journey and strategy behind the tool’s creation.

Resolving Public IP and Hostname Mappings Using dig and openssl

 In day-to-day infrastructure troubleshooting, especially in hybrid and cloud environments, verifying DNS mappings and certificate bindings is a routine yet critical task. Whether validating load balancer configurations, troubleshooting SSL issues, or confirming external exposure of services, having quick command-line methods can save significant time.

This article walks through two practical techniques:

  1. Identifying the public IP mapped to a DNS hostname

  2. Identifying the public hostname(s) associated with a public IP via SSL certificate inspection


1. Finding the Public IP Address for a Hostname

To determine the IP address associated with a public DNS record, the dig command is both simple and reliable.

Command

dig +short <public_url_hostname>

Example

dig +short example.mycompany.com

What It Does

  • Queries the DNS system for the A record.

  • +short ensures only the IP address is returned.

  • Works for publicly resolvable DNS records.

Sample Output

203.0.113.10

When to Use This

  • Validating DNS propagation

  • Confirming load balancer IP mapping

  • Verifying cutover during migrations

  • Troubleshooting connectivity issues

This is often the first step in confirming whether a hostname resolves to the expected public endpoint.


2. Finding Hostname(s) Mapped to a Public IP Using SSL Certificate

Reverse DNS lookups do not always return the expected hostname. However, if the server presents an SSL certificate, you can extract the Subject Alternative Names (SAN) from the certificate to identify the DNS names associated with that endpoint.

Command

openssl s_client -connect <public_url_host>:<port> -servername dummy </dev/null 2>/dev/null | \
openssl x509 -noout -text | grep DNS

Example

openssl s_client -connect 203.0.113.10:443 -servername dummy </dev/null 2>/dev/null | \
openssl x509 -noout -text | grep DNS

What This Command Does

  • openssl s_client -connect
    Establishes an SSL/TLS connection to the target IP and port.

  • -servername dummy
    Enables SNI (Server Name Indication). Some servers require SNI during TLS negotiation.

  • </dev/null 2>/dev/null
    Suppresses interactive input and hides connection noise.

  • openssl x509 -noout -text
    Extracts certificate details.

  • grep DNS
    Filters the output to display only DNS entries under the Subject Alternative Name section.

Sample Output

DNS:example.mycompany.com, DNS:www.example.mycompany.com

When to Use This

  • Identifying which hostname a public IP is serving

  • Validating SSL certificate bindings

  • Troubleshooting multi-domain load balancers

  • Confirming SAN entries after certificate renewal


Important Notes

  • This method works only if the service exposes an SSL certificate.

  • If multiple virtual hosts exist behind the same IP, SNI may affect which certificate is presented.

  • The certificate may contain multiple DNS entries.

Bring Your Own Certificate Authority (BYOCA) in OCI

Security and trust are foundational requirements for modern enterprise IT environments. Many organizations have invested heavily in mature Public Key Infrastructure (PKI) systems to support thousands of applications, meet regulatory mandates, and uphold long-standing trust chains. Rebuilding these systems for cloud deployments can be costly, complex, and disrupt established governance models.

To address this challenge, Oracle has introduced Bring Your Own Certificate Authority (BYOCA) for Oracle Cloud Infrastructure (OCI) Certificates. This feature enables enterprises to integrate their existing Certificate Authority (CA) infrastructure directly with OCI without relinquishing control of sensitive private keys. 

Why Bring Your Own CA Matters

Traditionally, OCI Certificates allowed customers to build PKI hierarchies in the cloud, create CAs, and manage certificate lifecycles with automation. However, many enterprises already operate trusted root CAs that are deeply embedded in internal and external systems. Migrating or recreating these root hierarchies in the cloud can pose operational, compliance, and risk management challenges—especially for organizations in highly regulated industries. 

With BYOCA, OCI now provides a mechanism to retain existing trust chains while leveraging cloud automation and lifecycle management. Enterprises can extend their on-premises PKI into the cloud in a secure and controlled manner, preserving compliance and ensuring uninterrupted trust continuity. 

How It Works

BYOCA allows you to import an existing root CA certificate into OCI Certificates simply by providing the PEM-encoded certificate. Importantly:

  • Private keys remain under your exclusive control and are never uploaded to OCI.

  • OCI registers the imported certificate as an externally managed root CA while maintaining trust relationships with existing PKI infrastructure.

  • You can generate subordinate Certificate Authorities (sub-CAs) in OCI by signing certificate signing requests (CSRs) externally and then uploading the signed subordinate certificates to OCI.

  • Once activated, these sub-CAs can issue certificates using secure, OCI-managed keys protected within OCI Vault and HSM infrastructure. 

This model bridges existing enterprise PKI investments with cloud automation and lifecycle management capabilities. It enhances interoperability across hybrid and multi-cloud deployments, enabling consistent certificate issuance and trust configurations across environments. 

Enterprise Benefits

The BYOCA approach delivers several advantages:

  • Leverage Existing Investments – Continue using established PKI policies, trust anchors, and governance frameworks without redesigning root hierarchies for the cloud. 

  • Improved Compliance and Governance – Maintain strict separation of duties, regulatory compliance, and audit requirements while integrating with OCI’s certificate lifecycle automation. 

  • Hybrid and Distributed Workloads – Easily support hybrid infrastructure, multi-cloud architectures, and distributed systems with consistent trust configurations. 

  • Operational Efficiency – Delegate the operational burden of subordinate CA lifecycle management to OCI while controlling root trust policies internally.

Getting Started

Importing and using BYOCA in OCI Certificates involves a few key steps:

  1. Import your external root CA certificate (PEM format) into OCI Certificates without exposing private keys. 

  2. Create subordinate CAs in OCI by generating CSRs and signing them with your root CA. 

  3. Upload the signed subordinate CA certificates to OCI and activate them for certificate issuance. 

Once configured, OCI Certificates can issue and manage certificates from these subordinate CAs, bringing the best of cloud automation together with trusted enterprise PKI. 

Understanding OCI Always Free Compute: Entitlements, Usage, and Reclamation Rules

 Oracle Cloud Infrastructure (OCI) provides a generous Always Free tier designed to help customers explore, build, and sustain lightweight workloads at no cost. While many OCI users are familiar with compute shapes, OCPUs, and metrics, the Always Free program introduces specific usage rules that are often misunderstood—particularly around idle resource reclamation.

This blog explains what Always Free compute is, how the free usage is calculated, and why Oracle may reclaim idle instances.


What Is OCI Always Free Compute?

Always Free is a long-term entitlement within Oracle Cloud Infrastructure that allows customers to run a limited set of resources indefinitely at no charge, provided they stay within defined usage thresholds.

For compute, the most commonly used Always Free option today is:

  • VM.Standard.A1.Flex (Ampere Arm-based)

This shape provides a monthly free allowance equivalent to:

  • 3,000 OCPU hours

  • 18,000 GB memory hours

In practical terms, this allows customers to run instances totaling up to 4 OCPUs and 24 GB of RAM continuously throughout the month without incurring cost.


How Usage Is Measured (OCPU Hours Explained)

OCI bills (or tracks free usage) based on consumption, not allocation.

An OCPU hour means:

One OCPU used for one hour

Examples:

  • 1 OCPU × 3,000 hours = 3,000 OCPU hours

  • 2 OCPUs × 1,500 hours = 3,000 OCPU hours

  • 4 OCPUs × 24 hours × ~30 days ≈ 2,880 OCPU hours

As long as both OCPU hours and memory hours remain within the free limits, no billing occurs.


Why Oracle Reclaims Always Free Instances

Because Always Free resources are shared and capacity-bound, Oracle enforces governance to prevent long-term reservation of unused infrastructure.

As part of this governance, idle Always Free compute instances may be reclaimed automatically.


What Does “Idle” Mean?

Oracle evaluates Always Free compute instances over a continuous 7-day period. An instance may be classified as idle if all of the following conditions are met during that period:

  • CPU utilization (95th percentile) is below 20%

  • Network utilization is below 20%

  • Memory utilization is below 20% (applies to A1 shapes only)

If these thresholds are consistently unmet, Oracle may stop and reclaim the instance.


Important Clarifications

  • Reclamation applies only to Always Free resources

  • Paid compute instances are not subject to this rule

  • Reclamation is automatic and may occur without prior notice

  • Boot volumes may remain, but the compute instance itself is removed

  • The policy is based on sustained inactivity, not brief idle periods


Practical Implications for OCI Users

For users running:

  • Bastion hosts

  • Lightweight application servers

  • Dev/test environments

  • Monitoring or automation nodes

…it is important to ensure some consistent activity exists. Instances that are powered on but doing “nothing” for extended periods are the most common candidates for reclamation.


Best Practices to Avoid Reclamation

  • Run periodic workloads or scheduled jobs

  • Ensure network traffic (even minimal) is present

  • Monitor CPU, memory, and network metrics

  • Treat Always Free as active-use infrastructure, not cold standby


Final Thoughts

OCI Always Free is a powerful offering when used as intended—for learning, development, and lightweight production use. Understanding how usage is calculated and how Oracle defines “idle” ensures you can design workloads that remain compliant, predictable, and cost-free.

Used correctly, Always Free compute can be a reliable foundation rather than a surprise outage.

Oracle AI Database 26ai Now Generally Available for On-Premises Linux x86-64 Platforms

Oracle has announced the general availability (GA) of Oracle AI Database 26ai Enterprise Edition for Linux x86-64 on-premises environments as part of the January 2026 quarterly Release Update (23.26.1). This milestone expands Oracle’s AI-native database platform beyond cloud and engineered systems into customer data centers, offering enterprises a broader choice for modern data and AI workloads. 


Bringing AI-Native Data Management to the Enterprise

Oracle AI Database 26ai represents the next generation of Oracle’s converged database architecture, embedding artificial intelligence deeply into the core of the database engine. With this release now available for on-premises Linux x86-64 systems, organizations that operate critical workloads within their own data centers can leverage AI capabilities without migrating to cloud-managed environments. 

This on-premises GA release ensures that enterprises with strict data sovereignty, security, compliance, or performance requirements can modernize their database platforms while taking full advantage of Oracle’s AI innovations. 


Key Capabilities in Oracle AI Database 26ai

The 26ai release includes a comprehensive set of AI-enabled features and enhancements designed to transform enterprise data management:

  • AI Vector Search – Support for similarity search across vectorized data, enabling intelligent retrieval of related documents, images, and other unstructured data. 

  • Globally Distributed Database with RAFT Replication – Built-in mechanisms for data replication across distributed environments.

  • In-Database SQL Firewall – Enhanced security controls for managing risky queries. 

  • Quantum-Resistant Encryption – Cryptographic protections designed to withstand future computational threats.

  • True Cache – Performance enhancements that optimize data access patterns.

  • JSON Relational Duality – Unified handling of JSON and relational data within the same platform. 

  • Apache Iceberg Lakehouse Support – Integration with modern open table formats for analytical workloads. 

This extensive feature set allows organizations to combine transactional, analytical, and AI-centric workloads within a single, unified database platform. 


What This Means for On-Premises Customers

Traditionally, advanced AI capabilities in Oracle databases were most accessible through cloud-hosted services or engineered systems such as Oracle Exadata. With the on-premises GA of Oracle AI Database 26ai for Linux x86-64, customers can now:

  • Preserve existing infrastructure investments while adopting state-of-the-art AI-native database technology. 

  • Simplify architectures by reducing dependency on external AI platforms or middleware. 

  • Accelerate application development and deployment with built-in AI functions. 

This release underscores Oracle’s commitment to offering flexibility across cloud and on-premises deployment models, ensuring enterprises can align technology choices with business requirements. 


Getting Started with Oracle AI Database 26ai On-Premises

Customers can download Oracle AI Database 26ai Enterprise Edition for Linux x86-64 from Oracle’s software distribution channels and begin planning upgrades or new deployments as part of their 2026 technology roadmap. 

For further details on the release, feature highlights, and tutorials, Oracle provides an array of resources, including product documentation, live labs, and introductory videos. 


Conclusion

The general availability of Oracle AI Database 26ai for on-premises Linux x86-64 systems marks a significant evolution in enterprise database technology. By seamlessly integrating AI capabilities into the database engine and extending them beyond cloud environments, Oracle empowers organizations to innovate faster, extract deeper insights, and maintain control over critical data–all within their own data centers.


Bringing Your Own Images into Oracle Cloud Infrastructure

Oracle Cloud Infrastructure allows customers to import external custom images; however, most of these images are originally built for environments that boot from local disks or use paravirtualized storage. While this works well for virtual machines, bare metal provisioning in OCI follows a different boot model and therefore requires additional preparation.

Why External Images Often Fail on Bare Metal

When an external image is imported into OCI and launched on a bare metal shape without modification, one or more of the following issues commonly occur:

  • The instance fails to complete the boot process

  • The operating system cannot locate the root filesystem

  • Network interfaces are not initialized during early boot

These behaviors are not platform defects. They indicate that the image lacks specific prerequisites required for bare metal booting in OCI.

Once these requirements are understood, the remediation is straightforward and enables the use of a single image across both virtual machine and bare metal instances.

Key Areas to Address for Image Compatibility

To ensure that one custom image works reliably across all OCI compute shapes, focus on the following three core areas.


1. Enable iSCSI Boot Support

Bare metal instances in OCI boot from network-attached storage using iSCSI. The operating system image must therefore support iSCSI during the earliest stages of the boot process.

At a minimum, the image should include:

  • Installation of the iSCSI initiator utilities (for example, iscsi-initiator-utils)

  • Required kernel parameters:

    • rd.iscsi.ibft=1

    • rd.iscsi.firmware=1

  • A rebuilt initramfs that incorporates iSCSI and networking support

With these elements in place, the operating system can:

  • Discover the boot volume presented by OCI

  • Initialize networking early enough to access the volume

  • Mount the root filesystem and continue the boot sequence

This configuration does not affect virtual machines, allowing the same disk layout to function on both VM and bare metal shapes.


2. Align Cloud-Init with OCI Requirements

Cloud-init is responsible for essential first-boot activities, including:

  • Applying SSH keys from instance metadata

  • Configuring network interfaces

  • Processing custom initialization scripts

External images frequently include outdated or incompatible cloud-init versions designed for other cloud platforms. For reliable operation in OCI, the image must:

  • Include cloud-init version 20.3 or later, which supports OCI as a data source

  • Remove or replace older cloud-init packages that may conflict

  • Configure Oracle Cloud Infrastructure as the authoritative metadata source

Once properly aligned, both virtual machine and bare metal instances initialize consistently and predictably.


3. Clean the Image Before Capture

Before converting the configured system into a reusable custom image, the operating system should be cleaned to remove residual state. This step prevents subtle and difficult-to-diagnose issues during future provisioning.

Recommended cleanup actions include:

  • Clearing cloud-init state and logs using cloud-init clean --logs

  • Removing old log files and temporary data

The objective is to ensure that every instance launched from the image behaves as a fresh deployment, regardless of the compute shape.


Summary

By enabling iSCSI boot support, ensuring cloud-init compatibility with OCI, and properly cleaning the image before capture, organizations can successfully reuse a single external custom image across both virtual machine and bare metal instances in Oracle Cloud Infrastructure. This approach reduces image sprawl, improves consistency, and simplifies operations across hybrid and cloud-native environments.

VCN Security List Allows Traffic to Restricted Ports – Alert Explanation and Remediation

 


An alert is generated in cloud guard when a Virtual Cloud Network (VCN) security list permits inbound traffic on ports classified as restricted. These ports are defined in the detector’s Restricted Protocol: Ports List within the input settings. Allowing such ports through ingress rules increases the attack surface and may expose workloads to unnecessary security risks.

This alert is raised to ensure that network access remains aligned with Oracle Cloud Infrastructure security best practices.


Impact

If restricted ports are allowed in VCN security list ingress rules, unauthorized or unintended access paths may be introduced. This can lead to compliance violations, increased vulnerability to network-based attacks, and deviation from established security baselines.


Recommended Resolution

Ensure that all VCN security lists do not allow any ports defined in the Restricted Protocol: Ports List through ingress (inbound) rules.

Specifically:

  • Review all security list ingress rules.

  • Remove or restrict any ports identified as restricted by the detector rule.

  • Validate that only explicitly required ports are permitted.


Steps to Update the Detector Rule

  1. Sign in to the OCI Console.

  2. Navigate to:
    Oracle Cloud Guard → Detector Recipes

  3. Open the relevant Detector Recipe.

  4. Select Detector Rules.

  5. Locate the rule “VCN Security List Allows Traffic to Restricted Port.”

  6. Edit the rule and remove port 111 from the Input Settings.

  7. Save and apply the changes.


Best Practices for Rule Customization

  • Controlled Configuration:
    Update the Restricted Protocol: Ports List only when there is a validated business or technical requirement.

  • Flexible Input Options:
    Restricted ports can be specified in two ways:

    • Manually entering individual port numbers or port ranges.

    • Referencing one or more predefined security lists by name.

  • Periodic Review:
    Regularly review detector rules and security list configurations to ensure continued alignment with organizational security standards.


Conclusion

Proactively managing restricted ports within VCN security lists is essential to maintaining a secure OCI networking posture. By refining detector rule input settings and enforcing strict ingress controls, organizations can significantly reduce exposure to unnecessary network risks while remaining compliant with OCI security best practices.

Beyond Allow Policies: How OCI IAM Deny Policies Enhance Access Control and Risk Management

Oracle Cloud Infrastructure (OCI) Identity and Access Management (IAM) traditionally follows an implicit deny model, where access is denied unless explicitly allowed. While this approach is effective, modern cloud governance often requires explicit guardrails to prevent sensitive actions—even when broad permissions exist. To address this need, OCI introduced IAM Deny Policies, enabling administrators to explicitly block specific actions and enforce stronger security controls.


What Are IAM Deny Policies?

IAM deny policies allow organizations to explicitly prohibit actions, overriding any existing allow policies. If a deny policy matches a request, the action is blocked regardless of other permissions. This capability is particularly valuable for enforcing governance standards, regulatory compliance, and operational safety in critical environments.

Deny policies are especially useful in large tenancies with multiple teams, compartments, and environments where broad access is necessary but unrestricted permissions could lead to accidental or unauthorized changes.


Key Characteristics

Explicit Opt-In

Deny policies are disabled by default and must be explicitly enabled by a tenancy administrator. Once enabled, the feature cannot be disabled, highlighting the need for careful planning before activation.

Administrator Protection

To prevent accidental lockouts, the default Administrators group in the default identity domain is exempt from deny policies. This ensures that core administrative access remains available even if restrictive deny rules are configured.

Policy Evaluation Order

During policy evaluation, deny policies take precedence over allow policies. If both apply to the same request, the deny rule always wins.


Policy Syntax Overview

Deny policies use the same structure as standard IAM policies, replacing allow with deny. This consistency makes them easy to understand and manage.

Example:

deny group DevTeam to manage bucket-family in compartment Prod
where request.operation = 'DeleteBucket'

This statement prevents the DevTeam group from deleting buckets in the production compartment, even if they have broader storage permissions.


Common Use Cases

Protecting Production Environments

Deny policies are ideal for preventing destructive actions such as deleting VCNs, databases, or object storage in production compartments.

Enforcing Separation of Duties

Organizations can restrict sensitive operations to specific teams by explicitly denying them to others, reinforcing clear responsibility boundaries.


Best Practices

  • Enable deny policies only after governance review and testing.

  • Keep deny statements narrow and condition-based to avoid unintended impact.

  • Regularly review deny policies as environments and teams evolve.

  • Document deny policies clearly to support audits and operational transparency.


Conclusion

OCI IAM Deny Policies add a powerful layer of control to cloud access management. When used thoughtfully, they help organizations protect critical resources, reduce operational risk, and enforce governance without sacrificing flexibility. As OCI environments grow in scale and complexity, deny policies become an essential tool for secure and disciplined cloud operations.


Creating Online-Patching-Compliant Table in Oracle E-Business Suite R12.2

Online patching introduced in Oracle E-Business Suite R12.2 fundamentally changed the way custom objects must be created and maintained. To ensure zero-downtime patching, every custom table must support Edition-Based Redefinition (EBR). This requires a base table, an editioning view, and an APPS synonym—created in a specific sequence using Oracle’s AD_ZD utilities.

This article provides a clear, step-by-step guide to creating an online-patching-compliant table along with its editioning view (EV) in R12.2. It also outlines how to manage future structural changes through XDF metadata or AD_ZD utilities.


1. Create the Base Table in the Owning Schema

Begin in the Run edition, logged in as the appropriate product schema (for example, APPLSYS or a custom application schema).
At this stage, only the base database objects are created.

Typical actions include:

  • Creating the table using standard DDL.

  • Defining supporting indexes.

  • Using APPS_TS_* tablespaces depending on the object type.

  • Preferring unique indexes instead of primary key constraints, in line with R12.2 object standards.

At this point, no editioning view exists. The table is still non-compliant with online patching.


2. Upgrade the Table to Create the Editioning View and APPS Synonym

Once the base table is ready, convert it into an online-patching-aware object using Oracle’s AD_ZD package:

EXEC AD_ZD_TABLE.UPGRADE('<OWNER_SCHEMA>', '<TABLE_NAME>');

This action generates two critical components:

  • Editioning View (EV):
    Created in the owning schema with the name <TABLE_NAME>#.
    This view becomes the layer through which the application interacts with the table.

  • APPS Synonym:
    A synonym named <TABLE_NAME> is created in the APPS schema, pointing to the EV.

From this point forward, all application components—Forms, OAF, PL/SQL APIs, reports—must reference the APPS synonym. This ensures that future table changes are transparently managed through the EV without breaking online patching rules.


3. Generate and Deploy the XDF Metadata

To package this custom table for deployment across environments, Oracle requires an XDF (XML Definition File) representation.

Steps:

  1. Insert at least one row into the new table (mandatory for XDF generation).

  2. Run xdfgen.pl from the Run edition to produce the .xdf file containing the metadata for the table, indexes, and associated objects.

  3. Include this .xdf in your custom application patch.

  4. During patch application, xdfcmp.pl automatically creates the base table and invokes AD_ZD_TABLE.UPGRADE, ensuring that the EV and APPS synonym are generated in all target instances.

This makes your object fully compliant with the R12.2 adoption and deployment model.


4. Managing Future Structural Changes

When enhancements or structural modifications are required—such as adding new columns—you must preserve online patching compliance.

Two methods are supported:

a. Preferred Method: Update via XDF

Modify the XDF file and apply it using xdfcmp.pl.
This ensures consistent behavior across environments and adheres to Oracle's standards.

b. Direct DDL in Development

If a table is altered manually in a development instance:

EXEC AD_ZD_TABLE.PATCH('<OWNER_SCHEMA>', '<TABLE_NAME>');

This regenerates the EV mapping to align it with the updated table structure.


Conclusion

Building online-patching-compliant objects is essential for long-term maintainability in Oracle E-Business Suite R12.2. By creating the base table, generating the editioning view through AD_ZD utilities, and managing future changes via XDF or AD_ZD_TABLE.PATCH, you ensure seamless behavior during both Run and Patch editions.


Understanding Oracle Unified Auditing: Quick Checks for DBAs


Oracle Unified Auditing consolidates all audit records into a single, unified framework, simplifying how auditing is configured, managed, and reviewed. As more environments move toward stricter compliance and security standards, DBAs increasingly rely on Unified Auditing to track database activity efficiently.

This short guide highlights how to quickly check whether Unified Auditing is enabled and how to review the audit policies configured in your database.


✅ How to Check if Unified Auditing Is Enabled

Unified Auditing can run in two modes:

  • Mixed Mode (default)

  • Pure Unified Auditing Mode

To verify the status, check the database options:

SELECT VALUE FROM V$OPTION WHERE PARAMETER = 'Unified Auditing';
  • TRUE → Unified Auditing is enabled

  • FALSE → Unified Auditing is disabled

If the database is running in pure mode, it was enabled during installation or via relinking.


View Enabled Unified Audit Policies

To see which audit policies are currently active:

SELECT DISTINCT policy_name 
FROM audit_unified_enabled_policies;

This lists all enabled policies, including Oracle-supplied and user-defined ones.


View All Available Unified Audit Policies

To list every policy defined in the system:

SELECT DISTINCT policy_name 
FROM audit_unified_policies;

This helps you understand what policies exist, even if they’re not currently enabled.


Check Audit Options Associated with Each Policy

To see which audit options belong to each policy:

SELECT audit_option, policy_name 
FROM audit_unified_policies 
GROUP BY policy_name, audit_option;

This provides insight into what actions are being audited under each policy.


Summary

Oracle Unified Auditing centralizes and simplifies auditing. With just a few queries, DBAs can quickly validate:

  • Whether Unified Auditing is active

  • Which policies are enabled

  • What audit actions are tied to each policy

These checks are essential for maintaining security, ensuring compliance, and understanding the audit footprint of your Oracle environment.

Validating an Oracle TDE Wallet Password Safely with mkstore

When managing Oracle Transparent Data Encryption (TDE), it’s often necessary to verify whether a wallet password is correct—especially before performing operations such as opening the wallet, rotating keys, or restoring backups. The safest way to do this is by using the mkstore utility outside the database environment, without requiring any database open/close actions.

Below is a simple and secure method to validate your TDE wallet password.


Why Use mkstore for Validation?

mkstore allows you to test the wallet password independently of the database.
This approach ensures:

  • No impact on the running database

  • No wallet state changes

  • A direct and reliable password validation method


 Steps to Validate a TDE Wallet Password

1. Copy Only the ewallet.p12 File

Copy the wallet file (ewallet.p12) to a temporary directory:

  • Do not copy cwallet.sso
    The .sso file enables auto-login, which bypasses the password prompt.
    Excluding it ensures that mkstore must ask for the password.

Example:

cp /path/to/original/ewallet.p12 /tmp/wallet_validation/

2. Run the mkstore Command

From the Oracle home bin directory, execute:

mkstore -wrl <wallet_directory> -list

Replace <wallet_directory> with the path to your copied wallet (e.g., /tmp/wallet_validation/).

mkstore will prompt you to enter the wallet password.


3. Interpret the Result

  • Valid Password:
    The command displays wallet contents (aliases/entries).

  • Invalid Password:
    You will see an error indicating that the password is incorrect.

This method confirms the correctness of your TDE wallet password without any risk to the running database or the original wallet.


Why Avoid Copying cwallet.sso?

cwallet.sso enables auto-login mode.
If present, the wallet opens automatically and no password check occurs, defeating the purpose of validation.
By copying only ewallet.p12, you ensure that mkstore enforces password authentication.


Example Commands

cp /u01/app/oracle/admin/db_wallet/ewallet.p12 /tmp/wallet_validation/
mkstore -wrl /tmp/wallet_validation/ -list

🟩 Summary

Validating a TDE wallet password using mkstore is:

  • Safe

  • Non-intrusive

  • Independent of database state

  • Ideal before sensitive operations like wallet open, key changes, or backup restores

This simple check can help prevent downtime and errors related to incorrect wallet passwords.

Edition-Based Redefinition (EBR) in Action: Resolving Synonym Translation Errors

While working with Oracle Applications schemas, you may encounter the error ORA-00980: synonym translation is no longer valid when accessing editioning views or objects through a synonym. This article explains a practical example of how this issue arises and how to resolve it.


Scenario

A user TEST tried to access the APPS schema object FND_USER_RESP_GROUPS_DIRECT using a synonym.

SQL> SHOW USER
USER is "TEST"

The user then connected and created a synonym for the editioning view:

SQL> CONN test/***
Connected.

SQL> CREATE OR REPLACE SYNONYM "FND_USER_RESP_GROUPS_DIRECT" FOR APPS.FND_USER_RESP_GROUPS_DIRECT;

Synonym created.

However, when querying the synonym, the following error occurred:

SQL> SELECT COUNT(1) FROM FND_USER_RESP_GROUPS_DIRECT;
SELECT COUNT(1) FROM FND_USER_RESP_GROUPS_DIRECT
                     *
ERROR at line 1:
ORA-00980: synonym translation is no longer valid

Root Cause

This issue happens because the TEST user is not edition-enabled, while the target object in the APPS schema is an editioning view.
Edition-based redefinition (EBR) in Oracle allows for multiple versions of application objects (like packages and views) across different editions.
When a non-editioned user tries to access editioned objects, Oracle cannot resolve the synonym, leading to this error.

To verify the editioning status of the user:

SQL> SELECT EDITIONS_ENABLED FROM DBA_USERS WHERE USERNAME='TEST';

E
-
N

The result N indicates the user is not edition-enabled.


Resolution

Enable editions for the user to allow access to editioned objects:

SQL> ALTER USER test ENABLE EDITIONS;

User altered.

Confirm the change:

SQL> SELECT EDITIONS_ENABLED FROM DBA_USERS WHERE USERNAME='TEST';

E
-
Y

Reconnect as the user and retry the query:

SQL> CONN test/***
Connected.

SQL> SELECT COUNT(1) FROM FND_USER_RESP_GROUPS_DIRECT;

  COUNT(1)
----------
     18916

The query now executes successfully.


Key Takeaway

When creating synonyms for editioning views in Oracle E-Business Suite or any EBR-enabled schema, ensure that the referencing user has editioning enabled.
Otherwise, Oracle will fail to translate the synonym, resulting in the ORA-00980 error.