Sql 授予特权时如何解决ORA-04042和ORA-00942错误?
我正在尝试向用户授予执行和读取权限 当我授予execute时,我得到:Sql 授予特权时如何解决ORA-04042和ORA-00942错误?,sql,oracle,database-administration,privileges,grant,Sql,Oracle,Database Administration,Privileges,Grant,我正在尝试向用户授予执行和读取权限 当我授予execute时,我得到: grant EXECUTE on SYS.KIR_DOKUMENT to ktest2 Error report - ORA-04042: procedure, function, package, or package body does not exist 04042. 00000 - "procedure, function, package, or package body does not exist" 当我
grant EXECUTE on SYS.KIR_DOKUMENT to ktest2
Error report -
ORA-04042: procedure, function, package, or package body does not exist
04042. 00000 - "procedure, function, package, or package body does not exist"
当我同意阅读时,我得到:
grant READ on SYS.KIR_DOKUMENT to ktest2
Error report -
ORA-00942: table or view does not exist
00942. 00000 - "table or view does not exist"
*Cause:
但是我在dba\u对象中检查了表的状态,它们是有效的
质疑
给出此输出:
必须向我的数据库中的另一个用户提供相同的授权:
如何解决这些错误?根据您的问题编辑,对象是一个目录;因此,您必须包括目录
关键字:
grant READ, EXECUTE on DIRECTORY KIR_DOKUMENT to ktest2;
报告说(加上重点):
on_object_子句标识授予特权的对象。用户、目录对象、版本、数据挖掘模型、Java源和资源架构对象以及SQL转换配置文件是分别标识的,因为它们位于不同的名称空间中。)
及
目录上的
指定要授予特权的目录对象的名称。不能使用架构名称限定目录名称
还有。第二个错误可能是权限问题-您作为哪个用户运行这些命令?或者可能是类型、所有者或名称不匹配;请编辑您的问题,以包含来自dba\u对象的选择所有者、对象名称、对象类型的输出,其中对象名称='KIR\u DOKUMENT'
。您真的在SYS模式中创建对象吗?
grant READ, EXECUTE on DIRECTORY KIR_DOKUMENT to ktest2;