ORA-38171: Insufficient privileges for SQL management object operation

Cuando trabajamos en tareas de performance, es util poder ejecutar desde la linea de comandos (Con analisis previo) las recomendaciones propuestas por:

  • SQLPrt (linea de comandos, recomendaciones propuestas.)
  • SQL TUNNING SET.

Dichas recomendaciones pueden mostrarnos:

  • Cambio de Plan de Ejeuccion.
  • Reescritura de querys.
  • Creacion de Indices.
  • Creacion de Profiles.

Descripcion del problema

Con respecto a la creacion de PROFILES, el siguiente error aparecera  si no contamos con los privilegios necesarios para aplicar las recomendaciones obtenidas.

Ante el intento de setear un profile por comandos

El resultado que nos aparece es el siguiente:

SQL> execute sys.dbms_sqltune.accept_sql_profile(task_name => 'HEAVYQUERY',replace => TRUE);
BEGIN sys.dbms_sqltune.accept_sql_profile(task_name => 'HEAVYQUERY',replace => TRUE); 
*
ERROR at line 1:
ORA-24265: Insufficient privileges for SQL profile operation
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 79
ORA-06512: at "SYS.DBMS_SQLTUNE", line 5659
ORA-06512: at "SYS.DBMS_SQLTUNE", line 5535
ORA-06512: at "SYS.DBMS_SQLTUNE", line 5564
ORA-06512: at line 1

ORA-24265: Insufficient privileges for SQL profile operatio

Ante el intento de aplicar el PROFILE desde Cloud Control.

Why ?

Este error aparece debido a que se intentó una operación DDL en un PROFILE de SQL por medio de una sesión de usuario sin los privilegios adecuados.

Solucion

Aplicar los Grants Adecuados a nuestro usuario selecccionado para realizar tareas de Tunning.

GRANT CREATE ANY SQL_PROFILE, DROP ANY SQL_PROFILE, ALTER ANY SQL_PROFILE TO USER_TUN;

Con ello aplicaremos el profile adecuado, al SQL ID , segun las recomendaciones.

Espero que les sirva y sus comentarios.

Saludos a Peru !