oracle中用户连接相关
2008-04-22 19:59
295 查看
查看用户连接
断掉某一连接
查看连接ip
oracle中查看用户连接
select username,sid,serial#,status from v$session where username <>'1';
select sid,ses.serial#,ses.username,pro.username,pro.spid,status
from v$session ses,v$process pro
where ses.username='PRODUCT' and ses.paddr=pro.addr;
select ses.username,pro.* from v$process pro,v$session ses where ses.paddr=pro.addr and ses.username<>'1';
从上面的sql中可以获得连接的用户、oracle sid以及os的进程号等信息
利用上述信息,可以停掉连接
alter system kill session 'sid,serial#';或者根据os的进程号直接kill
上述sql无法获得连接的client的ip,不知道有没有现成的view能提供呢?
要获取ip
方法1:$ORACLE_HOME/network/log/listener_orarac1.log
方法2:需要建立logon的trigger
create table session_history。。。
CREATE OR REPLACE TRIGGER logon_history
AFTER LOGON ON database
BEGIN
insert into session_history
select username,SYSDATE,SYS_CONTEXT('USERENV','IP_ADDRESS') from v$session where audsid = userenv( 'sessionid' ) ;
commit;
END;
方法3:netstat -anp |grep 1521
tcp 0 0 192.168.1.52:1521 192.168.2.101:45877 ESTABLISHED 5582/oracleorcl1
tcp 0 0 192.168.1.52:1521 192.168.2.101:37343 ESTABLISHED 5588/oracleorcl1
tcp 0 0 192.168.1.52:1521 192.168.2.101:50172 ESTABLISHED 24184/oracleorcl1
tcp 0 0 192.168.1.52:1521 192.168.2.101:59023 ESTABLISHED 5584/oracleorcl1
tcp 0 0 192.168.1.52:1521 192.168.10.23:1992 ESTABLISHED 29055/oracleorcl1
tcp 0 0 192.168.1.52:1521 192.168.2.101:51121 ESTABLISHED 5586/oracleorcl1
tcp 0 0 192.168.1.52:1521 192.168.2.102:44376 ESTABLISHED 18104/oracleorcl1
tcp 0 0 192.168.1.52:1521 192.168.2.102:51209 ESTABLISHED 27165/oracleorcl1
tcp 0 0 192.168.1.52:1521 192.168.2.102:59845 ESTABLISHED 18102/oracleorcl1
tcp 0 0 192.168.1.52:1521 192.168.2.102:41867 ESTABLISHED 22780/oracleorcl1
其中5582/oracleorcl1中的5582就是os的进程号
断掉某一连接
查看连接ip
oracle中查看用户连接
select username,sid,serial#,status from v$session where username <>'1';
select sid,ses.serial#,ses.username,pro.username,pro.spid,status
from v$session ses,v$process pro
where ses.username='PRODUCT' and ses.paddr=pro.addr;
select ses.username,pro.* from v$process pro,v$session ses where ses.paddr=pro.addr and ses.username<>'1';
从上面的sql中可以获得连接的用户、oracle sid以及os的进程号等信息
利用上述信息,可以停掉连接
alter system kill session 'sid,serial#';或者根据os的进程号直接kill
上述sql无法获得连接的client的ip,不知道有没有现成的view能提供呢?
要获取ip
方法1:$ORACLE_HOME/network/log/listener_orarac1.log
方法2:需要建立logon的trigger
create table session_history。。。
CREATE OR REPLACE TRIGGER logon_history
AFTER LOGON ON database
BEGIN
insert into session_history
select username,SYSDATE,SYS_CONTEXT('USERENV','IP_ADDRESS') from v$session where audsid = userenv( 'sessionid' ) ;
commit;
END;
方法3:netstat -anp |grep 1521
tcp 0 0 192.168.1.52:1521 192.168.2.101:45877 ESTABLISHED 5582/oracleorcl1
tcp 0 0 192.168.1.52:1521 192.168.2.101:37343 ESTABLISHED 5588/oracleorcl1
tcp 0 0 192.168.1.52:1521 192.168.2.101:50172 ESTABLISHED 24184/oracleorcl1
tcp 0 0 192.168.1.52:1521 192.168.2.101:59023 ESTABLISHED 5584/oracleorcl1
tcp 0 0 192.168.1.52:1521 192.168.10.23:1992 ESTABLISHED 29055/oracleorcl1
tcp 0 0 192.168.1.52:1521 192.168.2.101:51121 ESTABLISHED 5586/oracleorcl1
tcp 0 0 192.168.1.52:1521 192.168.2.102:44376 ESTABLISHED 18104/oracleorcl1
tcp 0 0 192.168.1.52:1521 192.168.2.102:51209 ESTABLISHED 27165/oracleorcl1
tcp 0 0 192.168.1.52:1521 192.168.2.102:59845 ESTABLISHED 18102/oracleorcl1
tcp 0 0 192.168.1.52:1521 192.168.2.102:41867 ESTABLISHED 22780/oracleorcl1
其中5582/oracleorcl1中的5582就是os的进程号
相关文章推荐
- oracle中用户连接相关
- oracle中用户连接相关
- oracle中用户连接相关
- oracle中用户连接相关
- oracle 删除用户及相关表、视图 提示用户正连接解决方法
- oracle中用户连接相关
- 第一次使用Oracle连接登陆、新建oracle用户、PLSQL Developer连接oracle数据库、Navicat for Oracle连接数据库
- ORACLE用户连接的管理
- 查询数据库当前用户连接信息(MySQL,Oracle)
- oracle中查看用户权限相关
- oracle-日常小计——连接不上oracle (用户名密码问题)以及用户被锁定解锁
- oracle中Normal,sysdba,sysoper三种连接方式和用户sys,system,sysdba,scott
- Oracle: 四、Oracle连接查询,子查询(相关子查询,嵌套子查询)
- oracle删除已连接用户
- Oracle如何删除已连接用户
- oracle删除用户时,提示“无法删除当前已连接的用户”
- 使用Oracle SQLDeveloper连接数据库并创建用户
- 删除正在连接的Oracle用户,以删除SDE用户为例
- Oracle通过SYS_CONTEXT ()获取用户连接信息
- 【原创】Oracle配置监听和连接,已经一些比较容易混淆的相关概念