在 Oracle 中如何确定远程 session 客户端的 IP 地址 前几天,Daniel 所在的环境多个数据库发生了一件惨案:我们把所有数据库主机、数据库的密码更改后, 硬件总集成的一台 windows 主机安装了一个 Oracle数据库监控工具,不断尝试利用错误的密码(有错有对
在 Oracle 中如何确定远程 session 客户端的 IP 地址前几天,Daniel 所在的环境多个数据库发生了一件惨案:我们把所有数据库主机、数据库的密码更改后,
硬件总集成的一台 windows 主机安装了一个 Oracle数据库监控工具,不断尝试利用错误的密码(有错有对)
连接到我们的数据库中,导致生产环境多个数据库发生大量的 library cache lock 等待事件,虽说对应用
没带来影响,但是给数据库运维带来了巨*烦,所有的登录尝试都失败。十几个人、几家厂商查了一天多
最后还是凭感觉找到了那台windows主机和机主。这次事故给了我们惨痛的教训,使我不得不研究一下怎样
获得远程 session 的客户端 IP 地址,快速定位这类问题。Oracle 中获得 session 的客户端 IP 地址主要
分为当前 session 和非当前 session 的 IP 地址。
1、如何当前 session 的客户端 IP 地址
使用 SYS_CONTEXT namespace 可以获得当前 session 的客户端 IP 地址
[oracle@prod admin]$ sqlplus system/oracle123@prod
SQL*Plus: Release 11.2.0.3.0 Production on Tue Mar 19 20:48:47 2013
Copyright (c) 1982, 2011, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
20:48:51 system@PROD> col "My IP Address" for a30
20:48:59 system@PROD> SELECT SYS_CONTEXT('USERENV','IP_ADDRESS') "My IP Address" from dual;
My IP Address
------------------------------
192.168.8.160
注意:要想测试此方法不能通过操作系统认证方式连接到数据库,必须通过TNS,因为前者是通过IPC协议
连接,后者才是通过 TCP/IP 协议连接。
2、如何获得所有远程 Session 的客户端 IP 地址
在 Oracle 数据库中没有直接获取远程 session 客户端 IP 地址的方法。但是存在直接获取当前
session 客户端 IP 地址的方法。通过在数据库中创建 after logon 触发器,再结合使用
DBMS_APPLICATION_INFO.SET_CLIENT_INFO 存储过程,我们可以通过查询 v$session 来获取所有
远程 session 的客户端 IP 地址。
首先,创建如下触发器:
CREATE OR REPLACE TRIGGER login_on AFTER LOGON ON DATABASE
DECLARE
ipinfo VARCHAR2(30);
BEGIN
SELECT SYS_CONTEXT('USERENV','IP_ADDRESS') INTO ipinfo FROM DUAL;
DBMS_APPLICATION_INFO.SET_CLIENT_INFO(ipinfo);
END;
/
然后使用任意的用户远程(TNS)连接到数据库中,然后通过查询以下语句便可查看该 session 的客户端 IP 地址:
21:03:35 system@PROD> conn scott/tiger@prod
Connected.
21:04:05 scott@PROD> col sys_context('userenv','sid') for a40
21:04:18 scott@PROD> select sys_context('userenv','sid') from dual;
SYS_CONTEXT('USERENV','SID')
----------------------------------------
125
用 system 用户创建一个 session 连接,在该 session 中来查询 scott 用户创建的 session 的客户端 IP 地址:
21:07:47 sys@PROD> col client_info for a30
21:08:04 sys@PROD> col CLIENT_IDENTIFIER for a30
21:08:17 sys@PROD> select username,sid,serial#,client_info,client_identifier from v$session where sid=125;
USERNAME SID SERIAL# CLIENT_INFO CLIENT_IDENTIFIER
------------------------------ ---------- ---------- ------------------------------ ------------------------------
SCOTT 125 35 192.168.8.160
21:08:43 sys@PROD> select username,sid,serial#,client_info,client_identifier from v$session where sid=18;
USERNAME SID SERIAL# CLIENT_INFO CLIENT_IDENTIFIER
------------------------------ ---------- ---------- ------------------------------ ------------------------------
SCOTT 18 17 192.168.8.100
[oracle@dss admin]$ sqlplus scott/tiger@prod
SQL*Plus: Release 11.2.0.3.0 Production on Tue Mar 19 21:20:16 2013
Copyright (c) 1982, 2011, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
21:21:18 scott@PROD> col sys_context('userenv','sid') for a30
21:21:24 scott@PROD> select sys_context('userenv','sid') from dual;
SYS_CONTEXT('USERENV','SID')
------------------------------
139
21:08:59 sys@PROD> select username,sid,serial#,client_info,client_identifier from v$session where sid=139;
USERNAME SID SERIAL# CLIENT_INFO CLIENT_IDENTIFIER
------------------------------ ---------- ---------- ------------------------------ ------------------------------
SCOTT 139 163 192.168.8.180
http://blog.csdn.net/xiangsir/article/details/8693734

MySQL ist für Anfänger geeignet, um Datenbankfähigkeiten zu erlernen. 1. Installieren Sie MySQL Server- und Client -Tools. 2. Verstehen Sie grundlegende SQL -Abfragen, wie z. B. SELECT. 3.. Stammdatenoperationen: Daten erstellen, Daten einfügen, aktualisieren und löschen. 4. Lernen Sie fortgeschrittene Fähigkeiten: Unterabfragen und Fensterfunktionen. 5. Debugging und Optimierung: Überprüfen Sie die Syntax, verwenden Sie Indizes, vermeiden Sie die Auswahl*und verwenden Sie die Grenze.

MySQL verwaltet strukturierte Daten effizient durch Tabellenstruktur und SQL-Abfrage und implementiert Inter-Tisch-Beziehungen durch Fremdschlüssel. 1. Definieren Sie beim Erstellen einer Tabelle das Datenformat und das Typ. 2. Verwenden Sie fremde Schlüssel, um Beziehungen zwischen Tabellen aufzubauen. 3.. Verbessern Sie die Leistung durch Indexierung und Abfrageoptimierung. 4. regelmäßig Sicherung und Überwachung von Datenbanken, um die Datensicherheit und die Leistungsoptimierung der Daten zu gewährleisten.

MySQL ist ein Open Source Relational Database Management -System, das in der Webentwicklung häufig verwendet wird. Zu den wichtigsten Funktionen gehören: 1. unterstützt mehrere Speichermotoren wie InnoDB und MyISAM, geeignet für verschiedene Szenarien; 2. Bietet Master-Slave-Replikationsfunktionen, um Lastausgleich und Datensicherung zu erleichtern. 3.. Verbessern Sie die Abfrageeffizienz durch Abfrageoptimierung und Index.

SQL wird verwendet, um mit der MySQL -Datenbank zu interagieren, um die Datenzusatz, Löschung, Änderung, Inspektion und Datenbankdesign zu realisieren. 1) SQL führt Datenoperationen über SELECT, INSERT, INTERATE, UPDATE, Löschen von Anweisungen durch. 2) Verwenden Sie Anweisungen für Datenbankdesign und -verwaltung create, ändern, fallen. 3) Komplexe Abfragen und Datenanalysen werden über SQL implementiert, um die Effizienz der Geschäftsentscheidungen zu verbessern.

Zu den grundlegenden Operationen von MySQL gehört das Erstellen von Datenbanken, Tabellen und die Verwendung von SQL zur Durchführung von CRUD -Operationen für Daten. 1. Erstellen Sie eine Datenbank: createdatabasemy_first_db; 2. Erstellen Sie eine Tabelle: CreateTableBooks (IDINGAUTO_INCRECTIONPRIMARYKEY, Titelvarchar (100) Notnull, AuthorVarchar (100) Notnull, veröffentlicht_yearint); 3.. Daten einfügen: InsertIntoBooks (Titel, Autor, veröffentlicht_year) va

Die Hauptaufgabe von MySQL in Webanwendungen besteht darin, Daten zu speichern und zu verwalten. 1.Mysql verarbeitet effizient Benutzerinformationen, Produktkataloge, Transaktionsunterlagen und andere Daten. 2. Durch die SQL -Abfrage können Entwickler Informationen aus der Datenbank extrahieren, um dynamische Inhalte zu generieren. 3.Mysql arbeitet basierend auf dem Client-Server-Modell, um eine akzeptable Abfragegeschwindigkeit sicherzustellen.

Zu den Schritten zum Erstellen einer MySQL -Datenbank gehören: 1. Erstellen einer Datenbank und Tabelle, 2. Daten einfügen, und 3. Durchführen von Abfragen. Verwenden Sie zunächst die Anweisungen für erstellte und creatEtable, um die Datenbank und Tabelle zu erstellen, und verwenden Sie dann die Anweisung InsertInto, um die Daten einzulegen, und verwenden Sie schließlich die Auswahlanweisung, um die Daten abzufragen.

MySQL ist für Anfänger geeignet, da es einfach zu bedienen und leistungsfähig ist. 1.Mysql ist eine relationale Datenbank und verwendet SQL für CRUD -Operationen. 2. Es ist einfach zu installieren und erfordert, dass das Stammbenutzerkennwort konfiguriert wird. 3.. Verwenden Sie Einfügen, Aktualisieren, Löschen und Wählen Sie, um Datenvorgänge auszuführen. 4. OrderBy, wo und Join kann für komplexe Abfragen verwendet werden. 5. Debugging erfordert die Überprüfung der Syntax und verwenden Sie Erklärungen zur Analyse der Abfrage. 6. Die Optimierungsvorschläge umfassen die Verwendung von Indizes, die Auswahl des richtigen Datentyps und der guten Programmiergewohnheiten.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Herunterladen der Mac-Version des Atom-Editors
Der beliebteste Open-Source-Editor

MantisBT
Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen