oracle中如何设置视图的查看权限?
How to set the right to see a view in oracle?
我在 oracle 数据库中以用户“a”身份登录。
我可以写一个像“Select * from MyView”这样的查询,我得到所有的结果——很好。
但是我在我的视图树(列表)中看不到 SqlDeveloper 中的视图本身,除此之外我不是所有者(我可以用“Select * from all_views”看到)。
如何更改此视图的权限以在树中查看“MyVIew”?
你不能改变视图的权利来查看它你的视图树(列表),因为它不是你自己的对象。要在您的视图树(列表)中拥有视图,您必须在您自己的 shema 中创建它。
我想您应该查询 all_objects
以查看您实际处理的是什么。为什么?因为下面的例子:
以用户 mike
身份连接,我将创建一个 table,将其上的 select 授予 public 并创建一个 public 同义词:
SQL> connect mike/lion
Connected.
SQL> create table test as select 'Littlefoot' name from dual;
Table created.
SQL> create public synonym myview for test;
Synonym created.
SQL> grant select on test to public;
Grant succeeded.
以另一个用户身份连接,scott
和 select 来自 myview
:
SQL> connect scott/tiger
Connected.
SQL> select * from myview;
NAME
----------
Littlefoot
对;有用。它在 SQL 开发人员中的什么位置?
啊哈,它在 public 同义词 中(我对名称应用了过滤器,寻找 MYVIEW
以跳过 zillion 其他 public 同义词)。
或者,在 SQL* 加上:
SQL> select object_name, object_type, owner from all_objects where object_name = 'MYVIEW';
OBJECT_NAME OBJECT_TYPE OWNER
------------------------------ ------------------- ------------------------------
MYVIEW SYNONYM PUBLIC
SQL>
因此,我建议您也这样做 - 查询 all_objects,您将对这个问题有更多的了解。
@Littlefoot 的回答是正确的。您当然也可以直接通过树的 'Other Users' 部分浏览到视图,然后向下钻取到视图。
但是,您也可以将视图过滤器设置为 'Include Synonyms'
I wrote a story on this topic for TABLES, but it also applies to VIEWS here.
我在 oracle 数据库中以用户“a”身份登录。
我可以写一个像“Select * from MyView”这样的查询,我得到所有的结果——很好。
但是我在我的视图树(列表)中看不到 SqlDeveloper 中的视图本身,除此之外我不是所有者(我可以用“Select * from all_views”看到)。
如何更改此视图的权限以在树中查看“MyVIew”?
你不能改变视图的权利来查看它你的视图树(列表),因为它不是你自己的对象。要在您的视图树(列表)中拥有视图,您必须在您自己的 shema 中创建它。
我想您应该查询 all_objects
以查看您实际处理的是什么。为什么?因为下面的例子:
以用户 mike
身份连接,我将创建一个 table,将其上的 select 授予 public 并创建一个 public 同义词:
SQL> connect mike/lion
Connected.
SQL> create table test as select 'Littlefoot' name from dual;
Table created.
SQL> create public synonym myview for test;
Synonym created.
SQL> grant select on test to public;
Grant succeeded.
以另一个用户身份连接,scott
和 select 来自 myview
:
SQL> connect scott/tiger
Connected.
SQL> select * from myview;
NAME
----------
Littlefoot
对;有用。它在 SQL 开发人员中的什么位置?
啊哈,它在 public 同义词 中(我对名称应用了过滤器,寻找 MYVIEW
以跳过 zillion 其他 public 同义词)。
或者,在 SQL* 加上:
SQL> select object_name, object_type, owner from all_objects where object_name = 'MYVIEW';
OBJECT_NAME OBJECT_TYPE OWNER
------------------------------ ------------------- ------------------------------
MYVIEW SYNONYM PUBLIC
SQL>
因此,我建议您也这样做 - 查询 all_objects,您将对这个问题有更多的了解。
@Littlefoot 的回答是正确的。您当然也可以直接通过树的 'Other Users' 部分浏览到视图,然后向下钻取到视图。
但是,您也可以将视图过滤器设置为 'Include Synonyms'
I wrote a story on this topic for TABLES, but it also applies to VIEWS here.