oracle如何查看当前有哪些用户连接到数据库

 我来答
龙氏风采
2016-12-27 · 知道合伙人互联网行家
龙氏风采
知道合伙人互联网行家
采纳数:5849 获赞数:12817
从事互联网运营推广,5年以上互联网运营推广经验,丰富的实战经

向TA提问 私信TA
展开全部
  可直接在 v$session视图中查询。
  语句如:
  select * from v$session where username='用户名';
  其中用户名应为英文大写字母。
  以下为视图各字段说明:
  SADDR - session address
  SID - session identifier 常用于链接其他列
  SERIAL# - SID有可能会重复,当两个session的SID重复时,SERIAL#用来区别session(说白了某个session是由sid和serial#这两个值确定的)
  AUDSID - audit session id。可以通过audsid查询当前session的sid。select sid from v$session where audsid=userenv('sessionid');
  PADDR - process address,关联v$process的addr字段,通过这个可以查询到进程对应的session
  USER# - 同于dba_users中的user_id,Oracle内部进程user#为0.
  USERNAME - session's username。等于dba_users中的username。Oracle内部进程的username为空。
  COMMAND - session正在执行的sql id,1代表create table,3代表select。
  TADDR - 当前的transaction address。可以用来关联v$transaction中的addr字段。
  LOCKWAIT - 可以通过这个字段查询出当前正在等待的锁的相关信息。sid + lockwait与v$loc中的sid + kaddr相对应。
  STATUS - 用来判断session状态。Active:正执行SQL语句。inactive:等待操作。killed:被标注为杀死。
  SERVER - 服务类型。
  SCHEMA# - schema user id。Oracle内部进程的schema#为0。
  SCHEMANAME - schema username。Oracle内部进程的为sys。
  OSUSER - 客户端操作系统用户名。
  PROCESS - 客户端process id。
  MACHINE - 客户端machine name。
  TERMINAL - 客户端执行的terminal name。
  PROGRAM - 客户端应用程序。比如ORACLE.EXE或sqlplus.exe
  TYPE - session类型。
  SQL_ADDRESS,SQL_HASH_VALUE,SQL_ID,SQL_CHILD_NUMBER - session正在执行的sql状态,和v$sql中的address,hash_value,sql_id,child_number对应。
  PREV_SQL_ADDR,PREV_HASH_VALUE,PREV_SQL_ID,PREV_CHILD_NUMBER - 上一次执行的sql状态。
  MODULE,MODULE_HASH,ACTION,ACTION_HASH,CLIENT_INFO - 应用通过DBMS_APPLICATION_INFO设置的一些信息。
  FIXED_TABLE_SEQUENCE - 当session完成一个user call后就会增加的一个数值,也就是说,如果session挂起,它就不会增加。因此可以根据这个字段来监控某个时间点以来的session性能情况。例如,一个小时前某个session的此字段数值为10000,而现在是20000,则表明一个小时内其user call较频繁,可以重点关注此session的performance statistics。
  ROW_WAIT_OBJ# - 被锁定行所在table的object_id。和dba_object中的object_id关联可以得到被锁定的table name。
  ROW_WAIT_FILE# - 被锁定行所在的datafile id。和v$datafile中的file#关联可以得到datafile name。
  ROW_WAIT_BLOCK# - 同上,对应块。
  ROW_WAIT_ROW# - session当前正在等待的被锁定的行。
  LOGON_TIME - session logon time.
ly...t@163.com
2016-12-26 · TA获得超过308个赞
知道小有建树答主
回答量:496
采纳率:100%
帮助的人:291万
展开全部
用超级管理员权限登录系统(conn / as sysdba)后通过如下语句查看:
select distinct username from v$session where username is not null group by username;
解释:在视图v$session中如果此时用户连接到数据库的话,会生成相应的视图信息。因为一个用户可能进行多种操作,所有记录是多条的,通过“distinct ”命令即可查出“唯一”的用户。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式