如何查找某个对象的定义情况?
如何查找某个对象的定义情况?
一、V$视图和X$视图 普通的用户不能访问V$视图: SQL> conn lunar/lunar@test1已连接。SQL> select * from user_sys_privs;USERNAME PRIVILEGE ADMIN_OPTION---------- -------------- ------------SQL> select * from user_role_privs;USERNAME GRANTED_ROLE ADMIN_OPTION DEFAULT_ROLE OS_GRANTED----------- --------------- ------------ ------------ ----------LUNAR CONNECT NO YES NOLUNAR RESOURCE NO YES NOPUBLIC PLUSTRACE NO YES NOSQL> select count(*) from v$fixed_table;select count(*) from v$fixed_tableORA-00942: 表或视图不存在必须授权:SQL> conn /@test1 as sysdba已连接。
SQL> grant select on v_$fixed_table to lunar;授权成功。SQL> conn lunar/lunar@test1已连接。SQL> 我们可以发现,得到授权的普通用户仍然只能访问V$开头的视图,而不能直接访问V_$开头的视图,因为实际上V$视图是V_$视图的公有同义词(PUBLIC SYNONYM)要想访问V_$必须带上SYS。
V_$。 例如: SQL> select count(*) from v$fixed_table; COUNT(*)---------- 912SQL> select count(*) from v_$fixed_table;select count(*) from v_$fixed_tableORA-00942: 表或视图不存在SQL> select count(*) from sys。
v_$fixed_table; COUNT(*)---------- 912SQL> 与此同时,也可以授予用户SELECT any table权限,这样这个用户就可以访问所有的V$视图: SQL> grant select any table to lunar;授权成功。
SQL> select * from user_role_privs;USERNAME GRANTED_ROLE ADMIN_OPTION DEFAULT_ROLE OS_GRANTED------------ --------------------- ------------ ------------ ----------LUNAR CONNECT NO YES NOLUNAR RESOURCE NO YES NOPUBLIC PLUSTRACE NO YES NOSQL> select * from user_sys_privs;USERNAME PRIVILEGE ADMIN_OPTION------------ ----------------------- ------------LUNAR SELECT ANY TABLE NOSQL> select count(*) from v$fixed_table; COUNT(*)---------- 912SQL> select * from v$fixed_table where rownum select * from v_$fixed_table where rownum select * from sys。
v_$fixed_table where rownum 通过查询V$FIXED_TABLE视图,我们可以看到大部分V$视图和一些X$视图(还有一些Oracle未公开的视图不在其中)。
答:您可以把这个用户的呢称放出来,让大家帮你找噢,或者你可以给IASK的客服发信,让他们帮忙找一下,他们的信箱: iask@详情>>