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
oracle:如何从另一个模式访问dba_audit_对象_Oracle - Fatal编程技术网

oracle:如何从另一个模式访问dba_audit_对象

oracle:如何从另一个模式访问dba_audit_对象,oracle,Oracle,我需要从一个包中的表dba_audit_对象中提取信息,我在另一个模式中定义了这个包。其目的是最终以Oracle形式显示提取的数据 如果我在SQL Developer中从dba\u audit\u对象中选择* 但是,如果我在包中写入相同的SELECT,它会显示:ORA-00942表或视图不存在。如果我试图基于相同的SELECT语句在模式中创建视图,也会出现相同的错误 我尝试过使用sys.dba\u audit\u对象,但这仍然会给我相同的错误消息 有人知道我应该/可以如何继续吗?提供类似的补助金

我需要从一个包中的表dba_audit_对象中提取信息,我在另一个模式中定义了这个包。其目的是最终以Oracle形式显示提取的数据

如果我在SQL Developer中从dba\u audit\u对象中
选择*

但是,如果我在包中写入相同的SELECT,它会显示:
ORA-00942表或视图不存在
。如果我试图基于相同的SELECT语句在模式中创建视图,也会出现相同的错误

我尝试过使用
sys.dba\u audit\u对象
,但这仍然会给我相同的错误消息

有人知道我应该/可以如何继续吗?

提供类似的补助金

GRANT SELECT ON DBA_AUDIT_OBJECT TO THE_SCHEMA_FROM_WHERE_YOU_NEED_ACCESS;
如果您已有同义词,则无法为同义词提供授权。在这种情况下,使用

GRANT SELECT ON SYS.DBA_AUDIT_OBJECT TO THE_SCHEMA_FROM_WHERE_YOU_NEED_ACCESS;

然后以SYS运行它,我得到了答案。您应以SYS身份登录并执行以下操作:

向公众授予DBA_AUDIT_对象上的SELECT


只有这样,其他模式才能使用它创建新视图或在包中创建新视图。

hi为什么我不能在公共同义词上授予select?schema SYS中已经定义了一个公共同义词DBA_AUDIT_对象,我的DBA将select授予了我的角色。但它仍然不起作用。为什么不呢?@user3322952您需要将它直接授予包的所有者,而不仅仅是分配给包所有者的角色。好的,谢谢!我确实读了好几遍,但都没能理解你句子的第二部分。谢谢乔厄尔斯!这正是我一开始不理解的部分。现在一切都好了:)