为什么查不到v$oracle 查询视图权限?需要什么权限

1821人阅读
ORACLE实战(86)
ORACLE 实例与启动分析(54)
服务器进程概念:
Oracle的服务器进程有Oracle实例自动创建,用来处理连接到实例的客户端进程发出的请求,用户必须通过连接到Oracle的服务器进程来获取数据库中的信息。
对于专用服务器模式(建库时默认),客户端进程和Oracle服务器进程是一一对应的,新增一个服务器进程,大约需要的内存是: AIX 5-10M& ;LINUX 3-5M内存--实测是1M多。
而在共享服务器模式下,一个Oracle服务器进程可能同时服务多个客户端进程。&&&&&&&&&&&&&&&&&
服务器进程主要用来执行下列的任务:
&解析、执行客户端提交的SQL语句。
从磁盘数据文件中读取必须的数据块到SGA得数据缓存区。
以适当形式返回SQL语句执行结果。
user process用户进程概念
客户机使用SQLPLUS/PLSQL等工具通过tnsnames.ora中的服务名,连接到数据库服务器的服务器进程。要经过监听--服务器进程--PGA。
PROCESSES与SESSIONS数之间关系:&& --
11g 官方默认值:sessions=1.5*processes + 22&&&& 文档:/cd/E11882_01/server.112/e40402/initparams234.htm#sthref696
10g 官方默认值:sessions=1.1*processes + 5&&&&&& 文档:/cd/B19306_01/server.102/b14237/initparams191.htm#REFRN10197
连接和会话的关系:
用户进程和 Oracle 实例间的通信通道communication pathway。
这个通信通道是通过进程间的通信机制interprocess communication mechanisms(在同一个计算机上运行用户进程和 Oracle 进程)或网络软件network software(当数据库应用程序与 Oracle 服务器运行在不同的计算机上时,就需要通过网络来通信)建立的。
--在专有服务器模式下,一个连接对应一个会话。
主要指用户和数据库间的联系。
例如,当用户启动 SQL*Plus时必须提供有效的用户名和密码,之后 Oracle 为此用户建立一个会话。从用户开始连接到用户断开连接(或退出数据库应用程序)期间,会话一直持续。见下图1
例如:使用PLSQL连接数据库,就有一个连接,相应也有一个会话。在PLSQL中打开一个SQL窗口,就又是一个连接,相应也有一个会话。
在PLSQL里打开的SQL窗口查询:
select sid from v$mystat where rownum=1;
select& b.spid,a.sid,a.username,a.program,a.machine& from v$session a,v$process b where a.paddr=b.addr and a.type='USER';
30152&& &51&& &BYS&& &plsqldev.exe&& &WORKGROUP\BYS&&---这一条是打开PLSQL软件连接到数据库的会话信息
<span style="color:#FF&& &40&& &BYS&& &plsqldev.exe&& &WORKGROUP\BYS&--这一条是当前PLSQL中的SQL窗口对应的会话信息
在运行数据库的LINUX系统上查询:& ---进程的PID与PLSQL中查询的可以对应。
[oracle@bys3 ~]$ ps -ef |grep LOCAL |grep -v grep
oracle&& 30152&&&& 1& 1 21:01 ?&&&&&&& 00:00:02 oraclebys3 (LOCAL=NO)&&&&& --对应PLSQL程序的会话
oracle&& 30187&&&& 1& 0 21:02 ?&&&&&&& 00:00:00 oraclebys3 (LOCAL=NO)&&&&& --对应PLSQL中的SQL窗口
#####################
使用SQLPLUS测试:& --实验环境,现在没有连接到数据库。
[oracle@bys3 ~]$ ps -ef |grep LOCAL |grep -v grep&& ---查询无返回,当前系统中没有ORACLE的连接信息
然后另开一窗口2,SSH到数据库所在服务器,启动SQLPLUS登陆数据库。再查询:
[oracle@bys3 ~]$ ps -ef |grep LOCAL |grep -v grep
oracle&& & 3 21:10 ?&&&&&&& 00:00:00 oraclebys3 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))&--这一条就是窗口2中新打开SQLPLUS连接的信息 LACAL=YES,表明不是通过监听连接的--本地IPC
用户进程与服务器进程相关的视图及10G官方文档链接:--下面几个视图都需要具有DBA权限才可以查。
v$session&&&&&& /cd/B19306_01/server.102/b14237/dynviews_2088.htm#REFRN30223
v$proess&&&&&&& /cd/B19306_01/server.102/b14237/dynviews_2022.htm#REFRN30186
V$MYSTAT&&&&&&& /cd/B19306_01/server.102/b14237/dynviews_1183.htm#REFRN30158
V$TRANSACTION&& /cd/B19306_01/server.102/b14237/dynviews_2170.htm#REFRN30291
V$LOCK&&&&&&&&& /cd/B19306_01/server.102/b14237/dynviews_1147.htm#REFRN30121
v$event_name&&& /cd/B19306_01/server.102/b14237/dynviews_1097.htm#REFRN30079
###############################################
V$MYSTAT--这个主要就是来查当前会话SID吧
SID 显示当前会话的SID
STATISTIC#& 统计号
VALUE&&&&&& 统计的&#20540;
###############################################
v$session&&& 此视图列出当前会话的详细信息-用户进程通过网络连接到服务器进程,即产生一个会话--不论会话是否有操作。
常用字段及其描述:
SADDR&& Session address&&&& 所产生的会话在内存中的位置
SID&&&& Session identifier& 与select distinct sid from v$中对应
SERIAL# 同一会话下的多个操作,用序列号SERIAL#来表示
PADDR&& 进程的地址,与与V$PROCESS中ADDR对应
USER#&& 其中SYS用户为0,与后面的SCHEMA#字段对应
USERNAME&&& 当前进程使用的ORACLE数据库用户名,与后面SCHEMANAME对应
COMMAND&&&& 查看进程当前正在执行的操作类型--显示数字,要查找数字对应的操作类型。-有锁定时可查
OWNERID&&&& 固定&#3644。如是其它&#20540;,则是迁移会话的用户的标识符。
TADDR&&&&&& 与V$TRANSACTION中ADDR对应,与V$LOCK中ADDR对应
LOCKWAIT&&& 与V$LOCK中KADDR对应
STATUS&&&&& 会话ACTIVE 状态:1.SQL正在执行 2.在等待-锁。
SERVER&&&&& 网络连接模式:(DEDICATED| SHARED| PSEUDO| NONE)
####################################################
客户端主机相关字段描述:
OSUSER&&&&& 客户端的操作系统用户名:WIN下Administrator,LINUX下oracle
PROCESS&&&& 客户端的进程号:LINUX客户端进程号为25819: ps aux|grep 25819|grep -v grep
MACHINE&&&& 客户端主机名:比如WIN WORKGROUP\BYSORACLE,LINUX
TERMINAL&&& 控制台名:比如WIN BYSORACLE,LINUX pts/3
PROGRAM&&&& 客户端程序,比如WIN PLSQL:plsqldev.exe,LINUX的SQLPLUS sqlplus@ (TNS V1-V3)
TYPE&&&&&&& 会话类型:分为用户会话与后台进程会话两种
SERVICE_NAME&&& 会话如果是通过网络监听连接,显示的是服务名。如通过IPC,可能是SYS$USERS
SQL_TRACE&& SQL TRACE是否开启
LOGON_TIME& 客户端登陆时的时间
RESOURCE_CONSUMER_GROUP& 会话当前资源组的名称
####################################################
会话执行的SQL语句的相关字段描述:
SQL_ADDRESS 目前正在执行的SQL语句的SQL标识符
SQL_HASH_VALUE
SQL_ID&&&&& 为空,执行完毕。不为空,会话ACTIVE。与V$SQL中SQL_ID对应。select sql_text from v$sql where sql_id='9mk1dmrqf9dv8';
SQL_CHILD_NUMBER
SQL_EXEC_START 10G无此字段,11G有,显示SQL语句开始执行的时间
SQL_EXEC_ID&&&& 目前正在执行的SQL语句的SQL标识符
PREV_SQL_ADDR
PREV_HASH_VALUE
PREV_SQL_ID
PREV_CHILD_NUMBER& &
PREV_EXEC_START& 11G新增
PREV_EXEC_ID&&&&&&& 11G新增。这6个PREV_开头的字段描述的均是最后一次执行的SQL语句的信息。
####################################################
会话相关的锁、等待事件字段描述:
ROW_WAIT_OBJ#&& 等待的对象;与DBA_OBJECTS中OBJECT_ID对应
ROW_WAIT_FILE#& 等待的OBJECTS所在的数据文件编号,与dba_data_files 中 file_id对应。select * from dba_data_files where file_id=4;
ROW_WAIT_BLOCK# 在数据文件 的第N个块上
ROW_WAIT_ROW#&& 在数据文件 的第N个块上第N行 0指从第一行开始
BLOCKING_SESSION_STATUS 阻塞会话状态,VALID 被阻塞;NO HOLDER 无阻塞;
BLOCKING_SESSION&&&&&&& 显示被哪个会话阻塞
BLOCKING_INSTANCE&&&&&& 显示补哪个实例阻塞-RAC时
SEQ#&&&&&&& 等待事件的惟一标识,此数字会递增。
EVENT#&&&&& 事件ID;五V$EVENT_NAME中的EVENT#对应
EVENT&&&&&& 事件描述:如enq: TX - row lock contention 行锁& 正常状态:SQL*Net message from client
WAIT_CLASS& 等待事件的类型-Application/IDLE;
WAIT_TIME&& WAIT_TIME非零&#20540;是会话的最后等待时间。零&#20540;表示会话正在等待。
SECONDS_IN_WAIT 如果WAIT_TIME=0,则SECONDS_IN_WAIT是在当前等待状态所花费的秒。如果WAIT_TIME& 0,则SECONDS_IN_WAIT是秒自上次等待的开始,SECONDS_IN_WAIT - WAIT_TIME/100自上等待结束的活跃秒。
#####################################################33
ADDR&&& 与v$session中PADDR对应
PID&&&&& Oracle进程标识符,ORACLE的后台进程及用户进程都在内。查select pid,pname from v$
SPID&&&& ORACLE中进程ID--ps -ef |grep LOCAL&&& 查出的进程号
PROGRAM&&&& 显示所用的程序--如oracle@ (SMON)& 后台进程 oracle@ (TNS V1-V3) 服务器上直接连接& oracle@ 通过监听连接的用户进程
BACKGROUND &#20540;为1,是后台进程。NULL表示是普通用户进程
TRACEID&&& &
TRACEFILE&& 11G中新增字段,显示了当前进程的TRACEFILE的具体位置。
LATCHWAIT&& 等待的锁的地址; NULL,没有锁
LATCHSPIN && &Address of the latch the pr NULL if none
关于会话进程的PGA内存相关信息:
PGA_USED_MEM&&& 进程当前使用的PGA内存&#20540;,
PGA_ALLOC_MEM&& PGA分配给会话的内存的大小:1138050BYTES 11.2.0.4中分配的空间是1M。
PGA_FREEABLE_MEM
PGA_MAX_MEM&&&& 已经分配给会话的最大内存空间&#20540;
性能分析思路:
先看OS资源,CPU 内存消耗最多的进程,从进程找到会话,再查看会话详细信息。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:486112次
积分:8975
积分:8975
排名:第1380名
原创:413篇
转载:20篇
评论:48条
(1)(3)(1)(1)(3)(5)(7)(3)(2)(1)(5)(1)(1)(4)(1)(2)(5)(4)(9)(16)(19)(9)(21)(18)(47)(79)(165)8352人阅读
[Oracle] - [oracle](32)
&oracle 触发器中 用 v_$session 问题讨论 &在非系统用户底下建触发器时引用v$session记录类型时出现问题错误:“表和视图不存在”但是在 pl/sql 中是可以运行 select * from v$session 的v$session是同义词,v_$session是视图需要以下处理:可直接授权sys&& :&& grant&& select on v_$session to&&说明:这是个很好的问题一个普通用户,具有了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_$SESSIONv$session是同义词,v_$session是视图这个问题,本质上,是pl/sql程序的特点的问题在 pl/sql程序设计一书中有讲到,由于 pl/sql 的编译的一些特性,oracle 采取了 角色在&& 存储过程、函数、包 等有名pl/sql 中 不起作用的策略,必须直接授权才生效,所以即使有dba角色在存储过程中也是无效的
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1094798次
积分:12235
积分:12235
排名:第744名
原创:191篇
转载:156篇
评论:240条
(1)(2)(3)(1)(2)(2)(1)(1)(2)(1)(1)(5)(3)(1)(1)(6)(15)(11)(4)(27)(6)(5)(14)(7)(3)(19)(6)(2)(2)(1)(1)(16)(87)(54)(1)(2)(3)(5)(5)(2)(4)(12)oracle中,什么情况下执行的sql语句在v$sqlarea中查不到_百度知道
oracle中,什么情况下执行的sql语句在v$sqlarea中查不到
我有更好的答案
额,楼上说畅常扳端殖得帮全爆户的对,不过还真有办法查不到你写的sql语句
字段SQL_TEXT
是VARCHAR2类型长度是1000字符 你可以前面以1000个都是空格
然后后面再写你的语句
这样就差不到你执行的内容了。嘎嘎。。。不过不要搞坏事
要做好孩子
不然妈妈会教育你的。
1.这是动态性能视图,都是从库启动之后开始存在的(准确的讲,启动的不同阶段可以查看的视图也不一样),不是从安装开始。2.记录的是内存中共享SQL区内的SQL语句,是最近在运行的语句,所以很久之前运行过的SQL肯定不记录在视图内了。
其他类似问题
为您推荐:
sql语句的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁关于v$session视图的访问权限????
[问题点数:20分,结帖人holysky]
关于v$session视图的访问权限????
[问题点数:20分,结帖人holysky]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
本帖子已过去太久远了,不再提供回复功能。新手请教一个关于V$SQL等视图的巨难问题。呵呵:)
[问题点数:50分,结帖人databank]
新手请教一个关于V$SQL等视图的巨难问题。呵呵:)
[问题点数:50分,结帖人databank]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2008年6月 Oracle大版内专家分月排行榜第三2008年3月 Oracle大版内专家分月排行榜第三2002年11月 VC/MFC大版内专家分月排行榜第三
2008年6月 Oracle大版内专家分月排行榜第三2008年3月 Oracle大版内专家分月排行榜第三2002年11月 VC/MFC大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。}

我要回帖

更多关于 创建视图权限 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信