[英]Oracle 19C - Error trying to grant execute on DBMS_LOCK
將一些腳本從 18 更新到 19,但得到了這個
也試過 DBMS_LOCK 而不是 SYS.DBMS_LOCK
SQL> GRANT EXECUTE ON SYS.DBMS_LOCK to myuser;
GRANT EXECUTE ON SYS.DBMS_LOCK to myuser
*
ERROR at line 1:
ORA-04042: procedure, function, package, or package body does not exist
sqlplus "sys/ChangeMe123!AS SYSDBA"
注意 - 其他贈款有效
SQL> GRANT ALTER SESSION to myuser;
格蘭特成功了。
SQL> GRANT CREATE PROCEDURE to myuser;
格蘭特成功了。
SQL> 向 myuser 授予創建序列;
格蘭特成功了。
SQL> 向 myuser 授予創建會話;
格蘭特成功了。
SQL> GRANT CREATE MATERIALIZED VIEW to myuser;
格蘭特成功了。
SQL> 向 myuser 授予創建表;
格蘭特成功了。
SQL> GRANT CREATE TRIGGER TO myuser;
格蘭特成功了。
SQL> 向 myuser 授予創建視圖;
格蘭特成功了。
SQL> GRANT CREATE ANY SYNONYM TO myuser;
格蘭特成功了。
SQL> GRANT DROP ANY SYNONYM TO myuser;
格蘭特成功了。
SQL> GRANT SELECT ANY DICTIONARY TO myuser;
格蘭特成功了。
SQL> GRANT EXECUTE ON DBMS_LOCK to myuser; 將 DBMS_LOCK 上的 GRANT EXECUTE 授予 myuser
DBMS_LOCK.SLEEP
已被棄用,替換為DBMS_SESSION.SLEEP
但在 19c 中仍然可用以實現向后兼容性。驗證對象是否存在
SQL> select object_name,object_type,owner from dba_objects
2 where object_name='DBMS_LOCK';
OBJECT_NAME OBJECT_TYPE OWNER
------------------------------ ----------------------- ------------------------------
DBMS_LOCK PACKAGE SYS
DBMS_LOCK PACKAGE BODY SYS
DBMS_LOCK SYNONYM PUBLIC
如果上述查詢未返回任何內容,則將 dbmslock 腳本作為創建上述包的sysdba運行
sql>@?/rdbms/admin/dbmslock
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.