簡體   English   中英

Oracle 19C - 嘗試在 DBMS_LOCK 上授予執行權限時出錯

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM