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