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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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中潜在的权限问题_Oracle_Permissions_Oracle11g - Fatal编程技术网

如何解决oracle中潜在的权限问题

如何解决oracle中潜在的权限问题,oracle,permissions,oracle11g,Oracle,Permissions,Oracle11g,我有一个同义词指向一张桌子: -- Create the synonym create or replace synonym MY_SCHEMA.COLORS_ALL for OTHER_SCHEMA.MV_CAR_COLORS; 问题是我可以查询这个同义词fine: select * from MY_SCHEMA.COLORS_ALL; 但是,当我试图在存储过程中使用这个同义词时,我得到一个错误,即表或视图不存在。 是什么导致了这个问题?

我有一个同义词指向一张桌子:

-- Create the synonym 
create or replace synonym MY_SCHEMA.COLORS_ALL
                      for OTHER_SCHEMA.MV_CAR_COLORS;
问题是我可以查询这个同义词fine:

select * 
  from MY_SCHEMA.COLORS_ALL;
但是,当我试图在
存储过程中使用这个同义词时,我得到一个错误,即
表或视图不存在。


是什么导致了这个问题?最近,目标表(MV)
MV\u CAR\u COLORS
被刷新,其索引也被刷新

您需要将表上的直接授权(而不是通过角色)授予存储过程的所有者。如果“刷新”是指删除并重新创建了表,则可能没有在刷新过程中重新授予此直接授予。

您需要将表上的直接授予(而不是通过角色)给存储过程的所有者。如果“刷新”是指删除并重新创建了表,则可能没有在刷新过程中重新授予此直接授予。

select*from dba\u tab\u privs where grantee in('PUBLIC','my\u schema'))设保人='OTHER_SCHEMA'和table_name='COLORS_ALL'
获取一行,因此我假设直接授权是有趣的-该行的内容是什么?同义词上的priv没有提供MV_CAR_COLORS对象的priv。我想你需要选择和引用权限table@Gary-对不起,在Oracle中没有同义词的特权。关于SELECT特权(而不是引用)您是对的,我们必须看看dba_tab_privs返回了什么来做出决定。在再次阅读原始问题后,我想知道SELECT中我的模式限定是故意的。哎哟。布拉德利是对的。您可以对同义词进行授权,但它会作为对对象的授权出现在基础***_选项卡_privs中。我对可以有自己授权的视图感到困惑。
select*from dba_tab_privs where grantee in('PUBLIC','my_schema'))设保人='OTHER_SCHEMA'和table_name='COLORS_ALL'
获取一行,因此我假设直接授权是有趣的-该行的内容是什么?同义词上的priv没有提供MV_CAR_COLORS对象的priv。我想你需要选择和引用权限table@Gary-对不起,在Oracle中没有同义词的特权。关于SELECT特权(而不是引用)您是对的,我们必须看看dba_tab_privs返回了什么来做出决定。在再次阅读原始问题后,我想知道SELECT中我的模式限定是故意的。哎哟。布拉德利是对的。您可以对同义词进行授权,但它会作为对对象的授权出现在基础***_选项卡_privs中。我对那些可以自己获得资助的观点感到困惑。