es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

error de privilegio INSUFICIENTE DE HERENCIA en Oracle

Estaba intentando obtener información de un video almacenado en Oracle DBA,

mientras ejecutaba este script:

DECLARE
   vid_data BFILE := BFILENAME('EXTDIR','video.mp4');
   mimeType VARCHAR2(80);
   format VARCHAR2(32) := NULL;
   width NUMBER;
   height NUMBER;
   frameResolution NUMBER;
   frameRate NUMBER;
   videoDuration NUMBER;
   numberOfFrames NUMBER;
   compressionType VARCHAR2(160);
   numberOfColors NUMBER;
   bitRate NUMBER;
BEGIN

-- obtener propiedades del bfile
   ORDSYS.ORDVIDEO.getProperties(vid_data, mimeType, format,
        width, height, frameResolution, frameRate,
        videoDuration, numberOfFrames, compressionType, 
        numberOfColors, bitRate);

-- imprimir propiedades
   DBMS_OUTPUT.PUT_LINE('mimeType: ' || mimeType );
   DBMS_OUTPUT.PUT_LINE('format: ' || format );
   DBMS_OUTPUT.PUT_LINE('width: ' || width );
   DBMS_OUTPUT.PUT_LINE('height: ' || height );
   DBMS_OUTPUT.PUT_LINE('frameResolution: ' || frameResolution );
   DBMS_OUTPUT.PUT_LINE('frameRate: ' || frameRate );
   DBMS_OUTPUT.PUT_LINE('videoDuration: ' || videoDuration );
   DBMS_OUTPUT.PUT_LINE('numberOfFrames: ' || numberOfFrames );
   DBMS_OUTPUT.PUT_LINE('compressionType: ' || compressionType );
   DBMS_OUTPUT.PUT_LINE('numberOfColors: ' || numberOfColors );
   DBMS_OUTPUT.PUT_LINE('bitRate: ' || bitRate );

EXCEPTION
   WHEN OTHERS THEN
        RAISE;
END;
/

aquí está el informe de error completo:

Informe de error –
ORA-06598: privilegio de INHERIT PRIVILEGES insuficiente
ORA-06512: en la línea 37
ORA-06512: en “ORDSYS.ORDVIDEO”, línea 50
ORA-06512: en la línea 17
06598. 00000 – “privilegio de INHERIT PRIVILEGES insuficiente”
*Causa: Se intentó ejecutar una función o procedimiento AUTHID CURRENT USER,
o hacer referencia a una vista BEQUEATH CURRENT_USER, y el
propietario de esa función, procedimiento o vista carece del privilegio
INHERIT PRIVILEGES en el usuario que realiza la llamada.
*Acción: No llame a la función o procedimiento ni haga referencia a la vista,
o conceda al propietario de la función, procedimiento o vista
el privilegio INHERIT PRIVILEGES en el usuario que realiza la llamada.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error sugiere que el usuario que ejecuta el script no tiene los privilegios necesarios para llamar a la función o procedimiento del paquete ORDSYS. Específicamente, el propietario de la función o procedimiento no tiene el privilegio INHERIT PRIVILEGES en el usuario que realiza la llamada.

    Para resolver este problema, se debe otorgar al usuario que ejecuta el script el privilegio INHERIT PRIVILEGES en el propietario del paquete ORDSYS. Se pueden seguir los siguientes pasos:

    1. Identificar el propietario del paquete ORDSYS ejecutando la siguiente instrucción SQL:
      SELECT owner FROM dba_objects WHERE object_name = 'ORDSYS';
      
    2. Otorgar el privilegio INHERIT PRIVILEGES en el propietario del paquete ORDSYS al usuario que ejecuta el script ejecutando la siguiente instrucción SQL:
      GRANT INHERIT PRIVILEGES ON owner_of_ordsys TO user_running_script;
      
    3. Volver a ejecutar el script y verificar que el error ya no ocurra.

    Tenga en cuenta que otorgar el privilegio INHERIT PRIVILEGES puede permitir al usuario que ejecuta el script realizar acciones como el propietario del paquete ORDSYS, por lo que esto debe hacerse con precaución y solo si es necesario.

Comments are closed.