`

v$session 的权限(转)

阅读更多

 

文章出自:http://blog.csdn.net/xys_777/article/details/6602864

 

 

oracle 触发器中 用 v_$session 问题讨论
 

在非系统用户底下建触发器时引用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角色在存储过程中也是无效的

 

 

分享到:
评论

相关推荐

    oracle 动态性能视图 (x$, v$, gv$, v_$, gv_$)

    V$视图包括了如`V$SESSION`(会话信息)、`V$DATABASE`(数据库信息)、`V$PARAMETER`(参数设置)等,覆盖了数据库性能监控、资源管理、配置设置等多个方面。V$视图通过公共同义词(Public Synonym)前缀为V$的形式...

    Oracle的V$性能视图学习大全

    然而,用户不能直接访问v$视图,它们通常通过创建在v_$视图之上的V$视图来间接访问,这些V$视图在创建时以V$为前缀,为普通用户提供了访问权限。 在Oracle数据库中,DBA可以使用多种V$视图来获取所需的信息。比如,...

    使用orcle遇到的错误

    第一次用PLSQL Developer连接数据库,若用sys用户登录并操作则正常,若用普通用户比如haishu登录并创建一个表则报错“动态...在执行菜单里你可以禁止统计,或在v$session,v$sesstat和v$statname表里获得选择权限。”

    dba_*表和v$表

    比如,`v$session`显示当前活跃的会话信息,`v$sql`收集了最近执行的SQL语句及其统计信息,而`v$waitstat`则提供了等待事件的详细数据。这些视图对于性能调优尤其关键,DBA可以通过分析这些信息找出性能瓶颈,优化...

    the v$ views for oracle database 10gR2

    例如,`V$SESSION` 视图显示了所有会话的信息,包括等待事件、SQL执行统计等;`V$BUFFER_POOL` 提供了缓冲池的使用情况;`V$WAITSTAT` 则记录了各种等待事件的统计信息。 #### 2. 全球固定视图(GV$ Views) 全球...

    Oracle10g 性能调整与优化

    `V$SESSION`可以用来检查用户的活动和资源使用,而权限和角色的配置则可以通过其他系统视图进行检查和调整。 总的来说,Oracle 10g 提供的丰富V$视图和X$表为DBA提供了强大的性能监控和调优工具。理解和熟练使用...

    Oracle性能视图学习大全

    1. **创建与访问权限**:V$视图是在安装过程中由`catalog.sql`脚本创建的,创建时都带有前缀`v_$`。为了方便用户访问,又创建了一系列前缀为`V$`的视图,即所谓的“公共视图”,这些视图实际上是对`v_$`视图的封装。...

    Oracle动态性能视图

    - **V$SQLAREA**、**V$SQLTEXT**、**V$SESSION** 和 **V$SESS_IO**:用于查找可能存在问题的查询。 5. **用户活动** - **V$SESSION**:检查用户的当前操作及其使用的资源。 - **V$SESSION_WAIT**、**V$SESSION_...

    oracle kill session

    - 其中`SID`和`SERIAL#`是目标会话的唯一标识符,可以通过查询`v$session`视图获得。 3. **使用企业管理器(EM)**: - Oracle Enterprise Manager提供了图形界面,可以直接选择特定的会话进行kill操作。 #### 四、...

    oracle恢复误删除数据,解除锁定的等sql语句.pdf

    - 可以通过 `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....

    Oracle 启动与关闭

    此外,还可以查看一些视图,如 v$parameter、v$sga、v$option、v$process、v$version、v$instance、v$session 等。 Oracle 关闭也是三步:关闭 DB;dismount DB;关闭实例。在关闭数据库时,需要使用 shutdown ...

    oracle标准语法速查表

    v$session_connect_info, v$session_longops, v$system_cursor_cache, v$session_cursor_cache, v$session_object_cache - **定义**:会话连接信息、长时间操作、系统游标缓存、会话游标缓存和会话对象缓存信息。 -...

    修改oracle process session 初始化参数

    - 通过查看`V$PROCESS`和`V$SESSION`视图来获取当前正在运行的`process`和`session`数量。 ```sql SQL> select count(*) from v$process; SQL> select count(*) from v$session; ``` #### 二、修改Process数量...

    35.Oracle数据字典1

    例如,V$PGA内存组件信息可以通过V$PGA_TARGET_ADVICE和V$PGA_MEMORY_USAGE视图获取,V$SESSION_WAIT和V$SESSION_LONGOPS用于识别会话等待和长时间操作,V$SYSSTAT提供数据库系统状态统计,有助于性能调优。...

    查看oracle系统参数的一些语句

    - **`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$...

    查询oracle正在运行的sql和锁定的表

    该脚本添加了对`v$session`和`v$sql`视图的左连接,以获取更多关于正在运行SQL的信息,如: - `osuser`: 操作系统用户名。 - `program`: 启动会话的应用程序名称。 - `schemaname`: 方案名。 - `cpu_time`: SQL执行...

    如何查出前台正在发出的sql语句

    1. **子查询**:首先,我们查询`v$session`视图,找出所有状态为“ACTIVE”的会话,并返回它们的`sid`和`serial#`。 ```sql SELECT sid, serial# FROM v$session WHERE status = 'ACTIVE'; ``` 2. **主查询**...

    oracle11g数据字典以及性能视图

    通过分析`V$视图`,DBA可以识别性能瓶颈,比如通过`V$SESSION_WAIT`查看会话等待事件,`V$SQLAREA`和`V$SQL`用于找出执行效率低下的SQL语句。`AWR`(Automatic Workload Repository)和`ASH`(Active Session ...

Global site tag (gtag.js) - Google Analytics