我想向Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
但是当我运行此查询时:
SELECT owner, object_type FROM dba_objects WHERE object_name = 'V$SESSION';
我收到了这个错误:
00942. 00000 - "table or view does not exist"
答案 0 :(得分:4)
Oracle v $视图名为V_ $ VIEWNAME,它们具有V $ VIEWNAME格式的同义词,您无法为同义词授予权限。如果您想要授予V $视图的权限,您必须如下所示:
///<reference path="../node_modules/electron/electron.d.ts" />
答案 1 :(得分:0)
我们还需要没有访问v $ session权限的普通用户来清理会话。函数将以拥有架构的特权执行,因此,如果您以有权访问V $ SESSION的用户身份创建函数,则可以从没有所需特权的用户处执行该函数。
例如,IFH_OWNER有权访问v $ session,而用户ID854812没有:
为id854812:
select count(*) from v$session
ORA-00942: table or view does not exist
作为IFH_OWNER:
select count(*) from v$session
56
create or replace function getSessionCount return int
as
vCnt int;
begin
select count(*) into vCnt from v$session;
return( vCnt);
end;
select getSessionCount from dual;
56
grant execute on getSessionCount to id854812;
为id854812:
select ifh_owner.getSessionCount from dual;
56