當前位置:首頁 » 編程語言 » oracle管理sql

oracle管理sql

發布時間: 2022-10-31 18:35:38

❶ 對oracle 資料庫管理,哪些PL/sql Packages 很常用

oracle clinet 是客戶端。 server是伺服器。 資料庫就一個客戶端一個伺服器。 pl/sql是一種語言。一種資料庫語言。是oracle資料庫對sql語句的擴展。

❷ 用於oracle資料庫管理 工具主要有哪些

對於
Oracle資料庫
管理:
1、Oracle自帶的有sql
plus,基於命令行的;
EM
企業管理器
,基於
圖形界面
的(11g以前是桌面版的,11g及以後是web界面的)。
2、第三方工具有
PL/SQL
Developer,容易上手,使用方便,使用人數最多;
Toad
for
oracle,功能比前者強大些,使用起來也相對復雜些。

❸ 簡述oracle管理工具sql*plus和isql*plus的區別

SQL/Plus 是oracle自帶的資料庫管理客戶端,可以在這里編輯SQL語句執行,是命令行模式的。
PL/SQL 有兩種。 一種是工具 PL/SQL Developer 和SQL/Plus一樣是資料庫管理客戶端,是一種可視化界面,也可以使用命令行編輯SQL。
另外一種是PL/SQL語言,是ORACLE中的塊結構語言,類似存儲過程,是一種過程話的語言。把SQL語言和編程高級語言想融合,和java近似。
既可以在SQL/Plus上開發PL/SQL語言,也可以在PL/SQL Developer上開發PL/SQL語言。

❹ oracle資料庫管理工具有哪些

對於Oracle資料庫管理:
1、Oracle自帶的有sql plus,基於命令行的;
EM企業管理器,基於圖形界面的(11g以前是桌面版的,11g及以後是web界面的)。

2、第三方工具有
PL/SQL Developer,容易上手,使用方便,使用人數最多;
Toad for oracle,功能比前者強大些,使用起來也相對復雜些。

❺ 簡述oracle管理工具sql*plus和isql*plus的區別

SQL*plus是與oracle進行交互的客戶端工具。在sql*plus中,可以運行sql*plus命令與sql*plus語句
pl/sql是工具軟體,很多sql語句不能在pl/sql執行,如:shutdown,set
serveroutput
on都不能執行

❻ 如何使用oracle提供的SQL

Sql性能非常差的時候,oracle提供了SQL_TRACE來跟蹤sql的執行情況。

註:分析sql的方式比較多,還有根據優化器、sql執行計劃來分析。

SQL_TRACE能夠將sql執行的過程輸出到一個trace文件裡面。

首先設置自己定義的trace文件的標識方便查找。

alter session set tracefile_identifier='mytest';

然後對當前會話啟動SQL_TRACE,最好不要一直打開該開關,代價比較大。

alter session set sql_trace=true;

然後我們執行一條sql語句。

最後關閉該開關的狀態。

alter session set sql_trace=false;

我們可以從目錄%ORACLE_BASE%/diag/rdbms/orcl/orcl/trace(11g版本的路徑,如果是10g的應該不一樣)中

找到自己定義的trace文件。

原始的trace文件的可讀性不高,我們一般使用oracle自帶的工具,tkprof來處理這個trace文件。我們可以查看tkprof的幫助。

tkprof orcl_ora_3820_mytest.trc out.txt

我們來看剛才生成的trace文件,頭部信息描述了tkprof 的版本以及報告中一些列的含義,對於任何一條sql語句,都應該包含Parse—sql分析階段,Execute—sql執行階段,Fetch—數據提取階段,橫向的列如圖所示,包含消耗cpu時間0.00秒,操作總耗時0.04秒,物理讀取了0個數據塊,沒有發生current方式的讀取(一般在update會發生),一共提取記錄1條。

Misses in library cache ring parse: 0表示這是一次軟分析(關於硬分析和軟分析下面會接著談到)

Optimizer mode: ALL_ROWS表示oracle的優化器模式為ALL_ROWS。這也就是前面提到的另外的分析方式優化器。

下面是sql執行的具體計劃,可以看到執行計劃選擇的是全表掃描。

經過處理以後的trace文件的確比較容易看明白,它有助於我們分析sql的性能問題。

下面我通過一個trace實例來解釋一下,為什麼OLTP系統中需要變數綁定機制。

當用戶和資料庫建立連接,並發送一條sql語句以後,oracle會對該sql進行hash函數運算(hash演算法提供了一種快速存取數據的方法,它用一種演算法建立鍵值與真實值之間的對應關系,每一個真實值只能有一個鍵值,但是一個鍵值可以對應多個真實值,以方便存取),得到一個hash值,然後到共享池中尋找是否有匹配的hash值的sql存在,如果有,就直接使用該sql的執行計劃去執行sql。如果沒有,oracle就會認為這是一條新的sql語句,然後按照語法分析,語義分析,生成執行計劃,執行sql這些步驟來執行最終把結果返回給用戶。這些步驟也被成為硬分析,可以想像,如果減少硬分析,能夠大大降低資料庫花費在sql解析上的資源開銷。

我們先執行一條sql 1000次,比較綁定變數和不綁定變數的差異。得到結果以後,要計算實際的消耗,我們需要把OVERALL TOTALS FOR ALL NON-RECURSIVE STATEMENTS以及OVERALL TOTALS FOR ALL RECURSIVE STATEMENTS的時間累計起來,前者表示數據字典表的相關的信息,包含許可權控制等,後者表示sql所衍生出的遞歸sql語句的信息。可以看到綁定變數的,整條語句執行時間為0.22+0.02=0.24秒,CPU時間0.18+0.03=0.21秒,分析次數3次,執行次數1003次。而不綁定變數的時候,整條語句執行時間為0.28+1.29=1.57秒,CPU時間0.31+1.26=1.57秒,分析次數1002次,執行次數1003次。可見綁定變數的確能夠帶來更低的開銷。(如何設計資料庫中使用綁定變數也是和系統息息相關的,很多資料庫問題都是在設計以後就已經存在的)

應用級調優分析:

就通常所說的三層架構來說,中間件這一層能夠起到一個緩沖池的作用,如果並發用戶數到3000這個數量級的時候,中間件能夠控制不是所有的用戶都能直接連接到資料庫,當然這里的程序會快速響應用戶請求,保證緩沖池的隊列等待不會很久。

對應用這一級別的調優,主要集中在app程序,中間件的監控,集群配置等方面。如果是發現應用級別的問題,首先要分析是配置問題,還是程序本身的問題。如果並發用戶數很大,中間件的線程池最大值配置過小,會導致在請求隊列堆積,表現就是線程監控視圖中,請求的隊列堆積比較多,一般可以調整線程池最大值來解決。我們來看看weblogic的監控視圖。

考慮到如果為每一個請求都創建一個新線程來處理的話,那麼我們難以在系統中實現足夠數量的線程。不受限制的創建線程可能耗盡系統資源,因此引入了線程池。線程池的思想是在進程開始時創建一定數量的線程並將它們置入一個池(pool)中,線程在這個池中等待工作。當伺服器接收到一個請求時,它就從池中喚醒一個線程(如果有可用的線程),由它來處理請求。一旦線程服務完畢,它就返回線程池等待後面的工作。

線程池利用已存在的線程服務請求要比等待創建一個線程要快,並且線程池限制了線程的數量。

如果懷疑是程序的問題,我們一般可以通過java自帶的工具來幫助分析,工具很多。這里我主要提到一個jdk1.6以後附帶的jvisualvm。

我們打開jdk1.6,找到並運行jvisualvm.exe。

我們發現應用程序分為本地,遠程兩部分。本地包含本地運行的java進程,遠程能夠通過配置連接到遠程伺服器上的java進程。我們先啟動一個tomcat。可以看到本地應用程序已經打開了一個帶有tomcat以及進程標識id的菜單。雙擊打開。這里我們一般關心2個視圖。監視、線程。

其中監視視圖比較關心垃圾回收活動(顧名思義,回收那些在程序裡面不再使用到的內存空間),堆內存變化。如果在壓力測試過程中,堆內存變化是一個逐漸上漲的趨勢,並且經過多次手動gc回收,還是保持這個趨勢,說明內存泄漏的可能性很大。如果猜測有內存泄漏,可以通過分析java的heap mp。JVM (java虛擬機)記錄下問題發生時系統的運行狀態並將其存儲在轉儲(mp)文件中。Heap mp就是這樣一種文件形式。

線程視圖比較關心線程的當前執行狀態,這里可以生成另一種轉儲文件 Java mp。Java mp,也叫做 Thread mp,是 JVM 故障診斷中最重要的轉儲文件之一。JVM 的許多問題都可以使用這個文件進行診斷,其中比較典型的包括線程阻塞,CPU 使用率過高,JVM Crash,堆內存不足,和類裝載等問題。其中線程阻塞更加常見。

❼ Oracle資料庫基本知識

Oracle資料庫基本知識

Oracle Database,又名OracleRDBMS,或簡稱Oracle。是甲骨文公司的一款關系資料庫管理系統。本文為大家分享的是Oracle資料庫的基本知識,希望對大家有所幫助!

它是在資料庫領域一直處於領先地位的產品。可以說Oracle資料庫系統是目前世界上流行的關系資料庫管理系統,系統可移植性好、使用方便、功能強,適用於各類大、中、小、微機環境。它是一種高效率、可靠性好的適應高吞吐量的資料庫解決方案。

介紹

ORACLE資料庫系統是美國ORACLE公司(甲骨文)提供的以分布式資料庫為核心的一組軟體產品,是目前最流行的客戶/伺服器(CLIENT/SERVER)或B/S體系結構的資料庫之一。比如SilverStream就是基於資料庫的一種中間件。ORACLE資料庫是目前世界上使用最為廣泛的資料庫管理系統,作為一個通用的資料庫系統,它具有完整的數據管理功能;作為一個關系資料庫,它是一個完備關系的產品;作為分布式資料庫它實現了分布式處理功能。但它的所有知識,只要在一種機型上學習了ORACLE知識,便能在各種類型的機器上使用它。

Oracle資料庫最新版本為OracleDatabase 12c。Oracle資料庫12c引入了一個新的多承租方架構,使用該架構可輕松部署和管理資料庫雲。此外,一些創新特性可最大限度地提高資源使用率和靈活性,如Oracle Multitenant可快速整合多個資料庫,而Automatic Data Optimization和Heat Map能以更高的密度壓縮數據和對數據分層。這些獨一無二的技術進步再加上在可用性、安全性和大數據支持方面的主要增強,使得Oracle資料庫12c 成為私有雲和公有雲部署的理想平台。

就業前景

從就業與擇業的角度來講,計算機相關專業的大學生從事oracle方面的技術是職業發展中的最佳選擇。

其一、就業面廣:ORACLE幫助拓展技術人員擇業的廣度,全球前100強企業99家都在使用ORACLE相關技術,中國政府機構,大中型企事業單位都能有ORACLE技術的工程師崗位,大學生在校期間興趣廣泛,每個人興趣特長各異,不論你想進入金融行業還是電信行業或者政府機構,ORACLE都能夠在你的職業發展中給你最強有力的支撐,成為你最貼身的金飯碗。

其二、技術層次深:如果期望進入IT服務或者產品公司,Oracle技術能夠幫助提高就業的深度。Oracle技術已經成為全球每個IT公司必選的軟體技術之一,熟練掌握Oracle技術能夠為從業人員帶來技術應用上的優勢,同時為IT技術的深入應用起到非常關鍵的作用。掌握 Oracle技術,是IT從業人員了解全面信息化整體解決方案的基礎。

其三、職業方向多:Oracle資料庫管理方向、Oracle開發及系統架構方向、Oracle數據建模數據倉庫等方向。

Oracle資料庫漏洞分析:無需用戶名和密碼進入你的資料庫

一般性的資料庫漏洞,都是在成功連接或登錄資料庫後實現入侵;本文介紹兩個在2012年暴露的Oracle漏洞,通過這兩種漏洞的結合,可以在不掌握用戶名/密碼的情況下入侵Oracle,從而完成對數據的竊取或者破壞。這兩個漏洞就是CVE-2012-1675和CVE-2012-3137。

引言

國內外很多重要的系統都採用Oracle作為數據存儲的資料庫;在Oracle中存儲著企業或政府大量敏感的信息,在金錢或政治的誘導下,內外部黑客會想法利用管理、網路、主機或資料庫的自身漏洞嘗試入侵到資料庫中,以達到自身的目的。

本文的作者通過對Oracle倆種漏洞的組合研究,設計了一套在不掌握用戶名/密碼的方式入侵到Oracle中;這種方法,比傳統的需要登錄到資料庫中的入侵方法,具有更大的安全隱患和破壞性。

本文希望通過對這兩個漏洞和攻擊方法的介紹,能夠引起相關人員的重視,完善對資料庫安全的措施。

1、概要介紹

本文提供的方法是基於漏洞CVE-2012-1675和CVE-2012-3137對oracle資料庫的攻擊測試的方法。

CVE-2012-1675漏洞是Oracle允許攻擊者在不提供用戶名/密碼的'情況下,向遠程“TNS Listener”組件處理的數據投毒的漏洞。攻擊者可利用此漏洞將資料庫伺服器的合法“TNS Listener”組件中的數據轉向到攻擊者控制的系統,導致控制遠程組件的資料庫實例,造成組件和合法資料庫之間的中間人攻擊、會話劫持或拒絕服務攻擊。

CVE-2012-3137漏洞是Oracle Database 10g/11g身份驗證協議實現中存在一個設計缺陷,攻擊者無需認證即可遠程獲取資料庫用戶密碼哈希相關數據,從而可以離線暴力破解用戶密碼,進一步控制資料庫系統。

我們通過如下的步驟和過程可以實現對Oracle的入侵:

(1)利用CVE-2012-1675進行TNS劫持,在監聽下利用遠程注冊,注冊同名資料庫實例;

(2)新登陸的用戶,在TNS的負載均衡策略下,有可能流量登錄到偽造的監聽服務上;

(3)該監聽服務對用戶的登陸過程進行監控,並將相關數據流量轉發到真實的資料庫上;

(4)利用CVE-2012-3137獲得通訊過程中的認證相關信息;

(5)對認證相關信息進行離線的暴力破解,獲得登陸的密碼;

(6)試用破解的用戶名/密碼登陸Oracle,完成對Oracle中數據的訪問;

2、通過CVE-2012-1675進行TNS劫持

該漏洞存在於Oracle的所有版本,並且Oracle至今僅是發布了警告性通知,並未提供解決方案。

要想利用CVE-2012-1675漏洞做TNS劫持,首先需要了解TNS機制。如下圖所示oracle 通過在本地解析網路服務名到目標主機IP地址,服務埠號,目標資料庫名,把這些信息發送到oracle伺服器端監聽程序,最後再由監聽程序遞送DBMS。

其中關鍵點在於監聽會按照目標資料庫名遞送到名稱正確的資料庫。那麼如果一個監聽下有2個同名資料庫。監聽將自動按照負載均衡把這次訪問發送到負載低的資料庫上,進行連接訪問。資料庫注冊到監聽的方法就決定了,能否同時注冊同名資料庫在同一個監聽下。注冊方式分為本地注冊和遠程注冊,通過修改參數可以調整為遠程注冊。

下面是一段可用的TNS劫持的過程:

1.在劫持機上創建一個和目標資料庫實例同名的資料庫實例。

2.在劫持機上修改 tnsnames.ora 文件

添加

listener_name=

(DESCRIPTION=

(ADDRESS=(PROTOCOL=tcp)(HOST=目標機器IP)(PORT=目標機器埠)))

3.在劫持機上用SQL*Plus 順序執行下面步驟。

1.$ sqlplus / as sysdba

2. SQL> ALTER SYSTEM SETREMOTE_LISTENER='LISTENER_NAME';

3. SQL> ALTER SYSTEM REGISTER;

4.多個客戶端,向資料庫發起登錄。會劫持到一部分客戶端的登錄信息。

最終達到效果如下圖所示:

按照猜想同一個監聽下有2個同名實例。客戶端訪問監聽,監聽按照客戶端中的資料庫名信息分配資料庫,由於監聽下有2個同名資料庫,客戶端鏈接很可能會被分配到劫持者的資料庫實例下,再通過配置劫持者的本地監聽把客戶端請求指回原資料庫。結構圖如下:

測試客戶端鏈接196次。目標資料庫實例獲得113次,劫持資料庫實例獲得83次基本滿足負載均衡的假設。(註上面實例是local server 下面實例是 remote server)

通過以上方式我們可以截獲約一半左右客戶端發送到伺服器的合法鏈接。其中獲得了伺服器IP、埠號、資料庫位置、實例名、登錄用戶名等一系列明文信息和4組密文信息(AUTH_SESSKEY,AUTH_SESSKEY_CLIENT,AUTH_PASSWORD,AUTH_VFR_DATA)。

3、通過CVE-2012-3137進行密碼破解

CVE-2012-3137受影響的資料庫版本有11.2.0.3,11.2.0.2,11.1.0.7,有使用了SHA-1加密演算法的10.2.0.5和10.2.0.4,還有使用了SHA-1的10.2.0.3(運行在z/OS下)版本。

雖然這個漏洞在11.2.0.3中已經解決,但是僅僅資料庫客戶端和伺服器都升級到11.2.0.3並且sqlnet.ora文件中增加SQLNET.ALLOWED_LOGON_VERSION=12才有效。

正如CVE-2012-3137所描述Oracle為了防止第三方通過網路獲取登錄信息包。而對密碼進行了加密處理。本部分只以oracle11.1密碼如何破解為例進行說明。

在發起連接之後(oracle牽手完成),客戶端和伺服器經過協商確定要使用的驗證協議。要完成這個任務,客戶端首先向資料庫發送一個包。包中包含客戶端主要信息和所請求的加密方式。資料庫確認加密方式有效後,發送一個確認服務包如下圖所示:

在通過安全網路服務完成任何所要求的協議之後,資料庫用戶被O3logon(oracle驗證方式) 進行驗證,這個協議執行一個序列來向資料庫證明客戶端擁有密碼。為了避免網路第三方截獲到密碼。首先客戶端發送用戶名到資料庫來表明用戶身份。資料庫端根據加密協議,其中96位的作為資料庫端密鑰,20位的作為偏移量,它對每個連接都是不同的。一個典型的資料庫端發給客戶端的密鑰如下:

AUTH_SESSKEY.....COCDD89FIGODKWASDF……………………

客戶端根據加密演算法向伺服器端發送96位的客戶端密鑰和64位的密碼密鑰。伺服器端計算客戶端傳入的密碼密鑰。如果計算後密碼密文和資料庫中存儲的16位密碼密文一致則驗證通過。

根據這個過程可知上面TNS劫持包中取得的加密信息:AUTH_SESSKEY,AUTH_SESSKEY_CLIENT,AUTH_PASSWORD,AUTH_VFR_DATA這四個值是解密的關鍵。我們把他們按照SHA1,MD5,AES192進行一系列處理。最終通過數據字典碰撞得到密碼明文。

下面這段網上公布的一段示例代碼,這段代碼與筆者的思路不完全相同,但也能大概地說明這個漏洞的攻擊過程:

import hashlib

from Crypto.Cipher import AES

def decrypt(session,salt,password):

pass_hash= hashlib.sha1(password+salt)

key =pass_hash.digest() + 'x00x00x00x00'

decryptor= AES.new(key,AES.MODE_CBC)

plain =decryptor.decrypt(session)

returnplain

session_hex ='6EAAB5422553A7598143E78767'

salt_hex = 'A7193E546377EC56639E'

passwords = ['test','password',''oracle','demo']

for password in passwords:

session_id= decrypt(session_hex.decode('hex'),salt_hex.decode('hex'),password)

print'Decrypted session_id for password "%s" is %s' %(password,session_id.encode('hex'))

ifsession_id[40:] == 'x08x08x08x08x08x08x08x08':

print'PASSWORD IS "%s"' % password

break

4、建議的預防措施

根據以上兩段分析,我們可以有如下的預防措施:

(1)在條件許可的情況下,對Oracle進行補丁升級,對Oracle打cpuoct2012-1515893補丁;注意對於cpuoct2012-1515893補丁要求伺服器端和應用伺服器端同時升級,否則應用系統將無法訪問Oracle;

(2)若無法對Oracle升級,要購買或安裝具備虛擬補丁功能的資料庫安全產品,防止對CVE-2012-3137和CVE-2012-1675的利用;

(3)建立足夠強健的口令,不要使用8位以下密碼,或者字典庫中的口令。

;

❽ Oracle寫出相應的SQL語句 1. 系統管理員admin,密碼為adminpwd,登錄後創建用戶abc,密碼ab

系統管理員admin,密碼為adminpwd,登錄後創建用戶abc,密碼abcpwd,並創建data表空間作為該用戶的默認表空間,數據文件存儲在D盤project目錄。
create tablespace data datafile 'D/project'

create user abc identified by abcpwd default tablesapce data

❾ oracle資料庫管理工具有哪些

toad for oracle

Toad由Oracle開發專家專門為開發人員而設計,是一個功能強大、結構緊湊的專業化PL/SQL開發環境。在Toad的新版本中,還加入了DBA(Database Administrator資料庫管理員)模塊,可以幫助DBA完成許多日常管理工作。它最大的特點就是簡單易用,訪問速度快。使用Toad,我們可以通過一個圖形化的用戶界面快速訪問資料庫,完成復雜的SQL和PL/SQL代碼編輯和測試工作,是一個高效的Oracle應用開發工具-Toad(Tools of Oracle Application Developers)。

Toad 主要特點

模式瀏覽器(schema browser):

模式瀏覽功能可以快速訪問數據字典,瀏覽資料庫中的表、索引、存儲過程。Toad 提供對資料庫的快速訪問,使用極為方便,用戶界面簡潔,結構安排合理。當我們點擊一個單獨的資料庫對象,Toad立即顯示此對象的詳細信息。例如,當我們點一個資料庫的表,所有和此表相關的索引、約束、存儲過程、SQL語句以及和其他表的相互引用關系都在同一界面顯示出來。為了簡化操作,用戶可以在一個模式瀏覽器窗口中操作所有資料庫對象。

熱點內容
ps3連ftp 發布:2025-05-20 04:19:11 瀏覽:816
計算機編譯干什麼的 發布:2025-05-20 04:05:18 瀏覽:46
安卓如何調手機時間 發布:2025-05-20 04:01:31 瀏覽:916
風扇轉壓縮機不轉 發布:2025-05-20 03:57:47 瀏覽:284
安卓手機如何測網速慢 發布:2025-05-20 03:55:49 瀏覽:495
用電腦做機房的伺服器 發布:2025-05-20 03:55:48 瀏覽:13
如何修改文件夾修改日期 發布:2025-05-20 03:44:08 瀏覽:831
安卓如何登陸tiktok 發布:2025-05-20 03:30:53 瀏覽:75
linux下執行python 發布:2025-05-20 03:23:30 瀏覽:431
sql查看器 發布:2025-05-20 03:22:53 瀏覽:134