Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 授予特权时如何解决ORA-04042和ORA-00942错误?_Sql_Oracle_Database Administration_Privileges_Grant - Fatal编程技术网

Sql 授予特权时如何解决ORA-04042和ORA-00942错误?

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" 当我

我正在尝试向用户授予执行和读取权限

当我授予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 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;