Problem:

When running the Repository Configuration Utility (RCU) for Oracle Fusion Middleware 12.2.1.3, you may receive the following error during the creation process in the GUI:

ORA-01031: insufficient privileges

The rcu.log file may show entries that look like this:

Tue Jul 9 23:55:51.780 GMT 2019 ERROR assistants.rcu.backend.action.AbstractAction: oracle.sysman.assistants.rcu.backend.action.AbstractAction::handleNonIgnorableError: Received Non-Ignorable Error: ORA-01031: insufficient privileges
File:/u01/oracle/middlewareTEST/soa/common/sql/soainfra/sql/oracle/createuser_grant_privs_oracle.sql
Statement:GRANT execute on dbms_utility    to DELETETHIS_SOAINFRA

Tue Jul 9 23:55:55.545 GMT 2019 ERROR assistants.common.dbutil.jdbc.JDBCEngine: oracle.sysman.assistants.common.dbutil.jdbc.JDBCEngine::onException: SQLException: ORA-01031: insufficient privileges

java.sql.SQLSyntaxErrorException: ORA-01031: insufficient privileges

        at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:494)
        at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:446)
        at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1054)
        at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:623)
        at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:252)
        at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:612)
        at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:226)
        at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:59)
        at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:910)
        at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1119)
        at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3780)
        at oracle.jdbc.driver.T4CPreparedStatement.executeInternal(T4CPreparedStatement.java:1343)
        at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3887)
        at oracle.jdbc.driver.OraclePreparedStatementWrapper.execute(OraclePreparedStatementWrapper.java:1079)
        at oracle.sysman.assistants.common.dbutil.jdbc.JDBCEngine.runSqlStatement(JDBCEngine.java:1272)
        at oracle.sysman.assistants.common.dbutil.jdbc.JDBCEngine.callRunSqlStatement(JDBCEngine.java:931)
        at oracle.sysman.assistants.common.dbutil.jdbc.JDBCEngine.executeSql(JDBCEngine.java:950)
        at oracle.sysman.assistants.common.dbutil.jdbc.JDBCEngine.executeSql(JDBCEngine.java:925)
        at oracle.sysman.assistants.common.dbutil.jdbc.OracleDDLStatement.execute(ANSISQLStatementType.java:713)
        at oracle.sysman.assistants.common.dbutil.jdbc.JDBCEngine.executeNextSQLStatement(JDBCEngine.java:1785)
        at oracle.sysman.assistants.common.dbutil.jdbc.JDBCEngine.parseNexecuteScript(JDBCEngine.java:1688)
        at oracle.sysman.assistants.rcu.backend.action.JDBCAction.perform(JDBCAction.java:424)
        at oracle.sysman.assistants.rcu.backend.task.AbstractCompTask.execute(AbstractCompTask.java:255)
        at oracle.sysman.assistants.rcu.backend.task.ActualTask.run(TaskRunner.java:346)
        at java.lang.Thread.run(Thread.java:748)
Caused by: Error : 1031, Position : 17, Sql = GRANT execute on dbms_lob        to DELETETHIS_SOAINFRA, OriginalSql = GRANT execute on dbms_lob        to DELETETHIS_SOAINFRA, Error Msg = ORA-01031: insufficient privileges

        at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:498)
        ... 24 more

Solution:

When running the RCU, make sure that account you select has the SYSDBA role.

Depending on the Oracle Fusion Middleware components being installed, you will need to use the "SYSDBA" role and not the "Normal" role.

In the screenshot, you can observe the message, "One or more components may require SYSDBA for the operation to succeed."