文章出自:http://blog.csdn.net/xys_777/article/details/6602864
在非系统用户底下建触发器时引用v$session记录类型时出现问题
错误:“表和视图不存在”
但是在 pl/sql 中是可以运行 select * from v$session 的
v$session是同义词,v_$session是视图
需要以下处理:
可直接授权
sys : grant select on v_$session to youruser;
说明:
这是个很好的问题
一个普通用户,具有了select any dictionary的权限后,就可以访问任何一个系统视图,包括v$session,由于dba角色包含了select any dictionary的权限,所以你的hospital用户select * from v$session是没问题的
但是你在PL/SQL中,要参照一个表rowtype或者在定义cursor的时候使用到某个表,那你得在这个表上有select权,尽管你的dba角色有select any table的权限,但由于在9i中规定
在初始化参数O7_DICTIONARY_ACCESSIBILITY取缺省值(false)的情况下,一个用户即使有select any table的权限,却还是不能访问sys对象的,除非
1 把O7_DICTIONARY_ACCESSIBILITY设置为true,也就是偶说的做法
或者
2 直接把sys对象的select权授予给这个用户,也就是biti所说的做法
在存储对象中引用字典表(视图)必须单独授权
SQL> select synonym_name,table_name from dba_synonyms where synonym_name like '%SESSION%';
SYNONYM_NAME TABLE_NAME
------------------------------ ------------------------------
V$SESSION V_$SESSION
v$session是同义词,v_$session是视图
这个问题,本质上,是pl/sql程序的特点的问题
在 pl/sql程序设计一书中有讲到,由于 pl/sql 的编译的一些特性,oracle 采取了 角色在 存储过程、函数、包 等有名pl/sql 中 不起作用的策略,必须直接授权才生效,所以即使有dba角色在存储过程中也是无效的
相关推荐
V$视图包括了如`V$SESSION`(会话信息)、`V$DATABASE`(数据库信息)、`V$PARAMETER`(参数设置)等,覆盖了数据库性能监控、资源管理、配置设置等多个方面。V$视图通过公共同义词(Public Synonym)前缀为V$的形式...
然而,用户不能直接访问v$视图,它们通常通过创建在v_$视图之上的V$视图来间接访问,这些V$视图在创建时以V$为前缀,为普通用户提供了访问权限。 在Oracle数据库中,DBA可以使用多种V$视图来获取所需的信息。比如,...
第一次用PLSQL Developer连接数据库,若用sys用户登录并操作则正常,若用普通用户比如haishu登录并创建一个表则报错“动态...在执行菜单里你可以禁止统计,或在v$session,v$sesstat和v$statname表里获得选择权限。”
比如,`v$session`显示当前活跃的会话信息,`v$sql`收集了最近执行的SQL语句及其统计信息,而`v$waitstat`则提供了等待事件的详细数据。这些视图对于性能调优尤其关键,DBA可以通过分析这些信息找出性能瓶颈,优化...
例如,`V$SESSION` 视图显示了所有会话的信息,包括等待事件、SQL执行统计等;`V$BUFFER_POOL` 提供了缓冲池的使用情况;`V$WAITSTAT` 则记录了各种等待事件的统计信息。 #### 2. 全球固定视图(GV$ Views) 全球...
`V$SESSION`可以用来检查用户的活动和资源使用,而权限和角色的配置则可以通过其他系统视图进行检查和调整。 总的来说,Oracle 10g 提供的丰富V$视图和X$表为DBA提供了强大的性能监控和调优工具。理解和熟练使用...
1. **创建与访问权限**:V$视图是在安装过程中由`catalog.sql`脚本创建的,创建时都带有前缀`v_$`。为了方便用户访问,又创建了一系列前缀为`V$`的视图,即所谓的“公共视图”,这些视图实际上是对`v_$`视图的封装。...
- **V$SQLAREA**、**V$SQLTEXT**、**V$SESSION** 和 **V$SESS_IO**:用于查找可能存在问题的查询。 5. **用户活动** - **V$SESSION**:检查用户的当前操作及其使用的资源。 - **V$SESSION_WAIT**、**V$SESSION_...
- 其中`SID`和`SERIAL#`是目标会话的唯一标识符,可以通过查询`v$session`视图获得。 3. **使用企业管理器(EM)**: - Oracle Enterprise Manager提供了图形界面,可以直接选择特定的会话进行kill操作。 #### 四、...
- 可以通过 `V$SESSION` 和 `V$PROCESS` 视图结合,如 `SELECT a.sid, a.serial#, a.program, a.status, substr(a.machine,1,20), a.terminal, b.spid FROM V$SESSION a, V$PROCESS b WHERE a.paddr=b.addr AND b....
此外,还可以查看一些视图,如 v$parameter、v$sga、v$option、v$process、v$version、v$instance、v$session 等。 Oracle 关闭也是三步:关闭 DB;dismount DB;关闭实例。在关闭数据库时,需要使用 shutdown ...
v$session_connect_info, v$session_longops, v$system_cursor_cache, v$session_cursor_cache, v$session_object_cache - **定义**:会话连接信息、长时间操作、系统游标缓存、会话游标缓存和会话对象缓存信息。 -...
- 通过查看`V$PROCESS`和`V$SESSION`视图来获取当前正在运行的`process`和`session`数量。 ```sql SQL> select count(*) from v$process; SQL> select count(*) from v$session; ``` #### 二、修改Process数量...
例如,V$PGA内存组件信息可以通过V$PGA_TARGET_ADVICE和V$PGA_MEMORY_USAGE视图获取,V$SESSION_WAIT和V$SESSION_LONGOPS用于识别会话等待和长时间操作,V$SYSSTAT提供数据库系统状态统计,有助于性能调优。...
- **`SELECT OSUSER, A.USERNAME, CPU_TIME/EXECUTIONS/1000000 || 's', SQL_FULLTEXT, MACHINE FROM V$SESSION A, V$SQLAREA B WHERE A.SQL_ADDRESS = B.ADDRESS ORDER BY CPU_TIME/EXECUTIONS DESC;`** 此查询...
此外,通过`v$session.paddr`可以关联到`v$process`来获取进程信息,通过`v$session.taddr`可以关联到`v$transaction`来获取事务信息。 ### v$sesstat `v$sesstat`视图用于查看特定会话的统计信息。通过关联`v$...
该脚本添加了对`v$session`和`v$sql`视图的左连接,以获取更多关于正在运行SQL的信息,如: - `osuser`: 操作系统用户名。 - `program`: 启动会话的应用程序名称。 - `schemaname`: 方案名。 - `cpu_time`: SQL执行...
1. **子查询**:首先,我们查询`v$session`视图,找出所有状态为“ACTIVE”的会话,并返回它们的`sid`和`serial#`。 ```sql SELECT sid, serial# FROM v$session WHERE status = 'ACTIVE'; ``` 2. **主查询**...
通过分析`V$视图`,DBA可以识别性能瓶颈,比如通过`V$SESSION_WAIT`查看会话等待事件,`V$SQLAREA`和`V$SQL`用于找出执行效率低下的SQL语句。`AWR`(Automatic Workload Repository)和`ASH`(Active Session ...