我试图从 Oracle dba 中存储的视频中获取一些信息,
执行此脚本时:
DECLARE
vid_data BFILE := BFILENAME('EXT_DIR','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
-- get properties from bfile
ORDSYS.ORD_VIDEO.getProperties(vid_data, mimeType, format,
width, height, frameResolution, frameRate,
videoDuration, numberOfFrames, compressionType,
numberOfColors, bitRate);
-- print properties
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;
/
这是完整的错误:
错误报告- ORA-06598: INHERIT PRIVILEGES 权限不足 ORA-06512: 在第 37 行 ORA-06512: 在“ORDSYS.ORD_VIDEO”,第 50 行 ORA-06512: 在第 17 行 06598. 00000 - “INHERIT PRIVILEGES 权限不足” *原因:尝试运行 AUTHID CURRENT_USER 函数或 过程,或引用 BEQUEATH CURRENT_USER 视图,并且 该函数、过程或视图的所有者缺乏 INHERIT PRIVILEGES 调用用户的权限。 *操作:要么不调用函数或过程,要么引用视图, 或授予函数、过程或视图的所有者 INHERIT PRIVILEGES 调用用户的权限。
错误
ORA-06598: insufficient INHERIT PRIVILEGES privilege
警告您可能存在权限升级问题。您有一个更强大的用户调用一个不太强大的用户拥有的包。这种情况通常不是问题,但在这种情况下,被调用的包包含 AUTHID CURRENT_USER
,这意味着该包以更强大的用户权限运行。
为了向 Oracle 表明您信任权限较低的用户不会滥用提升的权限,您必须使用如下命令允许其继承权限(假设您以 SYS 身份运行 PL/SQL 块):
GRANT INHERIT PRIVILEGES ON USER SYS TO ORDSYS;
请问执行这个程序的用户是否是SYS或者类似的系统用户?普通 DBA 用户是否可以避免此错误?