查询所有连接到ORACLE服务器的客户端IP地址的方法

【说明】

    Oracle中通过v$session表中的OSUSER和MACHINE字段可以查看当前客户端登陆连接的“操作系统名称”和“机器名”,但没能查看到客户端电脑IP。

查询:select * from v$session where username='HFY120401';




----------------------------------------

利用触发器实现查看所有客户端IP的方法

收集了网上的一些做法,做个总结,方便以后用,其操作步骤:

1. 在sys模式下创建一个表,用于记录客户端登录数据库服务器的详细信息。

复制代码
1 create table login_history  
2 (
3 username varchar2(60), --用户名
4 machine varchar2(60), --机器名
5 login_time date, --登录时间
6 ip varchar2(50) --ip地址
7 );
复制代码

2. 在sys模式下创建一个触发器:

复制代码
1 create or replace trigger login_log  
2 after logon on database
3 begin
4 insert into login_history
5 select username, machine, sysdate, sys_context('userenv', 'ip_address')
6 from v$session
7 where audsid = userenv('sessionid');
8 commit;
9 end;
复制代码

3.  一些查看session数的实例(以sys用户登录)

复制代码
 1 --查看login_history表
2 select * from login_history;
3
4 --查看当前的所有session数
5 select count(*) from v$session;
6
7 --查看当前的客户端计算机名为RHEL的所有session数
8 select count(*) from v$session where machine = 'RHEL';
9
10 --查看当前的各个客户端计算机的连接数
11 select count(*) , machine from v$session group by machine;
复制代码

 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Oracle Instant Client 11.2.0.1.0是轻量级Oracle客户端,用于连接访问Oracle 9i、10g、11g 11.2.0.1.0版本的Oracle数据库Oracle Instant Client11.2.0.1.0 安装程序包含OCI/ OCCI、JDBC-OCI SDK(软件开发工具包),软件开发时所需的全部头文件和链接库。 此版本不支持 Pro*C/C++和.NET程序所需的Oracle Provider for OLE DB,如需支持上述功能,请访问并下载ODAC(Oracle Data Access Components,其包含 ODP.NET, Oracle Services for MTS, Oracle Providers for ASP.NET):  http://www.oracle.com/technetwork/database/windows/downloads/utilsoft-087491.html  http://www.oracle.com/technetwork/cn/database/windows/downloads/index-101312-zhs.html 此版本集成了Oracle 11g 11.2.0.1.0中的实用工具tnsping、exp/imp,支持 Object Browser、TOAD等 Oracle 管理工具,并在Windows XP、Windows Vista、Windows 7平台下测试通过。 注意: 1. 请勿使用高版本的exp/imp工具对低版本的Oralce数据库进行导出,导入操作。 2. 安装完成后需手工配置 %TNS_ADMIN%\tnsnames.ora 文件,内容如下: ??? = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.xxx.xxx)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = xxxxxx) ) ) 1. 将 ??? 改为任意名字,这个名字将在你的程序或程序配置中用到。 2. 将 xxx.xxx.xxx.xxx 改为要连接Oracle 服务器的机器名或IP地址。 3. 将 xxxxxx 改为要连接Oracle 服务器的 SID,如不知道 SID,请询问安装 Oracle 数据库的管理人员。 相关网站: Oracle Instant Client 主页 http://www.oracle.com/technetwork/database/features/instant-client/index-100365.html Oracle Instant Client 常见问题 http://www.oracle.com/technetwork/database/features/oci/ic-faq-094177.html#A3661 SQL*Plus http://download.oracle.com/docs/cd/E11882_01/server.112/e16604/apd.htm#sthref3169 SDK: OCI(Oracle Call Interface) http://download.oracle.com/docs/cd/E11882_01/appdev.112/e10646/oci01int.htm#i423362 OCCI(Oracle C++ Call Interface) http://download.oracle.com/docs/cd/E11882_01/appdev.112/e10764/install.htm#CACFFGHF 如需源码或技术支持: Email: [email protected]
本章主要讲解oracle客户端连接oracle效劳器,主要有以下内容: 1.配置本地net效劳名配置 2.用sqlplus连接; 3.用toad连接; 一、配置本地net效劳名 首先说明我们的效劳器的IP为60.220.246.53,oracle的SID为czdb。 翻开配置本地net效劳名向导如下列图: 点击进入Net Configuration Assistant,出现如下列图所示: Oracle客户端连接Oracle服务器全文共9页,当前为第1页。 Oracle客户端连接Oracle服务器全文共9页,当前为第1页。 选择默认的添加,然后下一步,如下列图: Oracle客户端连接Oracle服务器全文共9页,当前为第2页。输入效劳名(效劳名其实就是oracle的SID)czdb,然后点击下一步: Oracle客户端连接Oracle服务器全文共9页,当前为第2页。 选择默认TCP,然后选择下一步: Oracle客户端连接Oracle服务器全文共9页,当前为第3页。输入主机名〔即oracle效劳器主机IP〕60.220.246.53,然后进入下一步: Oracle客户端连接Oracle服务器全文共9页,当前为第3页。 然后选择 ,进入下一步: 里面的详细信息说的是密码不对,说明是连接到了效劳器,我们只要改一下用户名和密码就可以了,然后点击更改登录: OK,测试成功; 另说明:查询本用户下的所有表的信息叫数据字典: user_tables;DBA_users; 两类数据字典表 dba一般是system用户 查表的信息从数据字典里查如:select table_name from user_tables; dual是名义表,不存任何东西. Oracle客户端连接Oracle服务 全文共9页,当前为第4页。 Oracle客户端连接Oracle服务 全文共9页,当前为第4页。 Oracle远程连接数据库总结 Oracle代码 : orCL = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = .xx.xx)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcl) ) ) orCL = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.xx.xx)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcl) ) ) 主要的参数为HOST、PORT、SERVICE_NAME 可能的问题: * 连接超时:很大可能性是windows自带的防火墙开着,屏蔽了1521端口 Oracle远程连接数据库总结 注:本文讲述了oracle数据库实例连接的配置过程,三个重要的配置文件位于C:\oracle\product\10.1.0\Db_1\NETWORK\ADMIN目录下 1. sqlplus sys/oracle@orcl sqlnet.ora 文件格式NAMES.DIRECTORY_PATH= (TNSNAMES,HOSTNAME)。客户端就会首先在tnsnames.ora文件中找orcl的记录。如果没有相应的记录那么尝试把orcl当作一个主机名,通过网络的途径去解析它的ip地址然后去连接这个ip上GLOBAL_DBNAME=orcl这个实例。 Oracle客户端连接Oracle服务器全文共9页,当前为第5页。这个文件类似于unix 的hosts文件,提供的tnsname到主机名或者ip的对应,只有当sqlnet.ora中类似NAMES.DIRECTORY_PATH= (TNSNAMES) 这样,也就是客户端解析连接字符串的顺序中有TNSNAMES时,才会尝试使用这个文件。   #你所要连接的时候输入得TNSNAME,如果listner启动失败尝试改IP地址   ora10gcsdl1 = Oracle客户端连接Oracle服务器全文共9页,当前为第5页。 (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ora10gcsdl1) ) ) ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = IBM-66336DAFE8F .ibm )(PORT = 1521)) (CONNECT_DATA = (SERVE
机不安装Oracle客户端,使用PL/SQL Developer连接远程数据库 1、先到Oracle网站下载Instant Client : http://www.oracle.com/technology/global/cn/software/tech/oci/instantclient/index.html 根据你的操作系统选择不同的Instant Client版本 下载会是一个压缩文件,解压之后的文件夹叫:D:/instantclient_11_2.放在你喜欢的目录即可.例如:D:/instantclient_11_2 2、在D:/instantclient_11_2目录下新建目录network,在network目录下再新建admin目录,在admin目录下新建文件tnsnames.ora,使用文本编辑器打开写入如下内容: ORCL = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.58 )(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = ORCL ) ) ) 第一个黄色字块:表示定义远程服务器的在本地主机名 第二个黄色字块:远程数据库IP地址 第三个黄色子块:远程数据库实例名 3、添加一个环境变量,名为TNS_ADMIN,值为tnsnames.ora文件所在路径。比如我的本机为:D:/instantclient_11_2/network/admin 4、设置ORACLE的语言,添加环境变量NLS_LANG ,值为: AMERICAN_AMERICA.AL32UTF8 该值可以连接到远程数据库中,通过下面的sql语句查询得到: select userenv('language') from dual; 如果该值设置不正确,将导致PL/SQL Developer连接数据库后,查看的数据会出现乱码。 5、下载并安装PL.SQL.Developer配置应用 配置tools->preferences->connection Oracle Home D:/instantclient_11_2 OCI library D:/instantclient_11_2/oci.dll 中文的PL/SQL Developer就是 工具-->首选项-->连接 Oracle主目录 D:/instantclient_11_2 OCI库 D:/instantclient_11_2/oci.dll 6、关闭PL/SQL Developer,重起Developer. 主机名就会出现在PL/SQL Developer的列表里,输入用户名密码,就可以登录远程oracle 11g数据库了。 补充Instant Client 说明 Oracle Instant client 是oracle提供的简便客户端, 支持多种平台. 可从oracle网站下载, 下载地址为 http://www.oracle.com/technology/global/cn/software/tech/oci/instantclient/index.html 包括如下内容: Instant client Package - Basic 运行OCI, OCCI, 和JDBC-OCI应用程序需要的所有文件. Instant client Package - Basic Lite: 只包含英语错误信息, 只支持unicode, ascii, 西欧字符集. Instant client Package - JDBC Supplement 为jdbc增加了xa, 国际化和RowSet操作. Instant Client Package - SQL *Plus 包含sqlplus和需要的库文件 Instant client Package - SDK 使用Instant Client开发Oracle 应用程序需要的头文件及示例makefile Instant client package - ODBC 使用odbc时需要的库, 不是所有平台都有. linux平台包含. Basic 和Basic Lite两个中必须选一个, 其他包都是可选的. 我下载 了 Basic, JDBC supplement, SQL *Plus, SDK, ODBC. 解压后放在一个文件夹下, 在这个文件夹下建立文件 tnsnames.ora, 设置环境变量LD_LIBRARY_PATH和TNS
要配置Oracle客户端服务器进行连接,您需要执行以下步骤: 1. 安装Oracle客户端:下载并安装适用于您操作系统的Oracle客户端软件。确保选择与服务器版本匹配的客户端软件。 2. 配置Oracle网络:在Oracle客户端安装目录中,找到`network/admin`目录。在该目录下创建一个名为`tnsnames.ora`的文件(如果文件已存在,请打开它)。 3. 编辑tnsnames.ora文件:使用文本编辑器打开tnsnames.ora文件,并添加以下内容: ``` <服务名> = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = <服务器IP地址>)(PORT = <端口号>)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = <数据库服务名>) ) ) ``` 替换`<服务名>`为您自定义的服务名,`<服务器IP地址>`为您的服务器IP地址,`<端口号>`为数据库监听的端口号,`<数据库服务名>`为您的数据库的服务名。 4. 测试连接:打开命令提示符(Windows)或终端(Linux/OS X),运行以下命令测试连接: ``` sqlplus <用户名>/<密码>@<服务名> ``` 替换`<用户名>`、`<密码>`和`<服务名>`为您的数据库登录凭据和服务名。 如果成功连接数据库,则配置完成。如果出现错误,请检查连接字符串和网络配置,并确保服务器上的监听程序正在运行。 请注意,这只是基本的配置步骤。根据您的实际环境和需求,可能需要进行其他配置和调整。建议参考Oracle官方文档或咨询数据库管理员获取更详细的配置信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值