當前位置:首頁 » 操作系統 » oracle資料庫的使用

oracle資料庫的使用

發布時間: 2023-03-06 08:01:55

『壹』 oracle資料庫的常見命令

1、su _ oracle 不是必需,適合於沒有DBA密碼時使用,可以不用密碼來進入sqlplus界面

2、sqlplus /nolog 或sqlplus system/manager 或./sqlplus system/manager@ora9i

3、SQL>connect / as sysdba ;(as sysoper)或connect internal/oracle AS SYSDBA (scott/tiger)conn sys/change_on_install as sysdba

4、SQL>startup; 啟動資料庫實例

5、 查看當前的所有資料庫: select * from v$database

(1)oracle資料庫的使用擴展閱讀:

ORACLE資料庫系統是美國ORACLE公司(甲骨文)提供的以分布式資料庫為核心的一組軟體產品,是目前最流行的客戶/伺服器(CLIENT/SERVER)或B/S體系結構的資料庫之一。

oracle資料庫邏輯結構

它由至少一個表空間和資料庫模式對象組成。這里,模式是對象的集合,而模式對象是直接引用資料庫數據的邏輯結構。

模式對象包括這樣一些結構:表、視圖、序列、存儲過程、同義詞、索引、簇和資料庫鏈等。邏輯存儲結構包括表空間、段和范圍,用於描述怎樣使用資料庫的物理空間。

文件結構

資料庫的物理存儲結構是由一些多種物理文件組成,主要有數據文件、控制文件、重做日誌文件、歸檔日誌文件、參數文件、口令文件、警告文件等。

『貳』 Oracle資料庫實例及其相關概念

完整的Oracle資料庫通常由兩部分組成 Oracle資料庫實例和資料庫

)資料庫是一系列物理文件的集合(數據文件 控制文件 聯機日誌 參數文件等)

)Oracle資料庫實例則是一組Oracle後台進程/線程以及在伺服器分配的共享內存區

在啟動Oracle資料庫伺服器時 實際上是在伺服器的內存中創建一個Oracle實例(即在伺服器內存中分配共享內存並創建相關的後台內存) 然後由這個Oracle資料庫實例來訪問和控制磁碟中的數據文件 Oracle有一個很大的內存快 成為全局區(SGA)

一 資料庫 表空間 數據文件

資料庫

資料庫是數據集合 Oracle是一種資料庫管理系統 是一種關系型的資料庫管理系統

通常情況了我們稱的 資料庫 並不僅指物理的數據集合 他包含物理數據 資料庫管理系統 也即物理數據 內存 操作系統進程的組合體

資料庫的數據存儲在表中 數據的關系由列來定義 即通常我們講的欄位 每個列都有一個列名 數據以行(我們通常稱為記錄)的方式存儲在表中 表之間可以相互關聯 以上就是關系模型資料庫的一個最簡單的描述

當然 Oracle也是提供對面象對象型的結構資料庫的最強大支持 對象既可以與其它對象建立關系 也可以包含其它對象 關於OO型資料庫 以後利用專門的篇幅來討論 一般情況下我們的討論都基於關系模型

表空間 文件

無論關系結構還是OO結構 Oracle資料庫都將其數據存儲在文件中 資料庫結構提供對數據文件的邏輯映射 允許不同類型的數據分開存儲 這些邏輯劃分稱作表空間

表空間(tablespace)是資料庫的邏輯劃分 每個資料庫至少有一個表空間(稱作SYSTEM表空間) 為了便於管理和提高運行效率 可以使用一些附加表空間來劃分用戶和應用程序 例如 USER表空間供一般用戶使用 RBS表空間供回滾段使用 一個表空間只能屬於一個資料庫

每個表空間由同一磁碟上的一個或多個文件組成 這些文件叫數據文件(datafile) 一個數據文件只能屬於一個表空間 在Oracle 以後 數據文件創建可以改變大小 創建新的表空間需要創建新的數據文件 數據文件一旦加入到表空間中 就不能從這個表空間中移走 也不能與其它表空間發生聯系

如果資料庫存儲在多個表空間中 可以將它們各自的數據文件存放在不同磁碟上來對其進行物理分割 在規劃和協調資料庫I/O請求的方法中 上述的數據分割是一種很重要的方法

Oracle資料庫的存儲結構分為邏輯存儲結構和物理存儲結構

)邏輯存儲結構 用於描述Oracle內部組織和管理數據的方式

)物理存儲結構 用於描述Oracle外部即操作系統中組織和管理數據的方式

二 Oracle資料庫實例

為了訪問資料庫中的數據 Oracle使用一組所有用戶共享的後台進程 此外 還有一些存儲結構(統稱為System Gloabl Area 即SGA) 用來存儲最近從資料庫查詢的數據 數據塊緩存區和SQL共享池(Shared SQL Pool)是SGA的最大部分 一般佔SGA內存的 %以上 通過減少對數據文件的I/O次數 這些存儲區域可以改善資料庫的性能

Oracle資料庫實例(instance)也稱作伺服器(server) 是用來訪問資料庫文件集的存儲結構及後台進程的集合 一個資料庫可以被多個實例訪問(這是Oracle並行伺服器選項)

lishixin/Article/program/Oracle/201311/17362

『叄』 oracle資料庫連接怎麼使用

操作步驟如下:
1、請先保證oracle可以正常運行。

2、打開Eclipse,找到逗Window地--逗Show View地--逗Other...地

3、在彈出的新窗口中,打開文件夾逗Data Management地找到逗Data Source Explorer地,並單擊逗OK地。

4、這時候,Eclipse主界面下方會多出一個逗Data Source Explorer地標簽欄,在其中逗Database Connections地文件夾圖標上單擊右鍵,選中逗New...地。

5、出現新窗口,找到自己正在使用的資料庫"Oracle",自行起個名字,在此起了"cityinfo"這個名字。然後單擊逗Next>地

6、出現如下窗口時,請單擊右上方圖中所示的符號(位置),注意此步驟。

7、緊接上步,在新的對話框中,找到所使用的oracle版本,建議選用Oracle Thin Driver。

8、找到JAR List,若大家使用的是oracle11,請將其中的ojdbc14給remove掉,否則,Eclipse會不停提示出錯。

9、按著上一步remove掉ojdbc14後,請導入目前正使用的oracle的驅動包,這里用的是oracle11,因此,需要導入ojdbc6,這一驅動包在oracle安裝文件中就有。

10、進入properties標簽欄,輸入自己所建資料庫相關內容,這里在oracle中建的用戶名是逗cityinfo地。這一步各自的信息可能不同,請自行決定。然後單擊逗OK地。

11、上步點擊逗OK地後,會返回前一個窗口,這時,Eclipse會提示要求輸入"user name"用戶名,就是大家所建立的資料庫的名稱,不是任意起的名字。輸入後,可單擊下方的"Test Connection",當提示逗Ping Successed!地時,表示Eclipse和oracle連接成功。然後單擊逗Finish地完成配置。

12、此時,要做的工作就是在Eclipse中,用視圖顯示出所建資料庫中的各表。回到Eclipse主界面,找到如下圖所示位置,在"tables"中,任意表點擊右鍵,選擇逗Data地--"Sample Contents"。

13、出現新的標簽欄SQL Results,裡面顯示的就是資料庫中所存的表的信息。

『肆』 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位以下密碼,或者字典庫中的口令。

;
熱點內容
androidmandroidn 發布:2025-08-21 03:31:50 瀏覽:210
為什麼不能把安卓桌面app設為默認 發布:2025-08-21 03:22:31 瀏覽:442
愛奇藝會員密碼哪裡設置 發布:2025-08-21 03:11:57 瀏覽:262
電信電話密碼是什麼 發布:2025-08-21 03:08:14 瀏覽:446
sqlserver自動收縮 發布:2025-08-21 03:07:28 瀏覽:685
微信伺服器開哪個地址 發布:2025-08-21 03:06:12 瀏覽:652
diy源碼 發布:2025-08-21 02:42:36 瀏覽:480
信息存儲與信息檢索 發布:2025-08-21 02:22:32 瀏覽:122
android非同步數據載入數據 發布:2025-08-21 02:09:33 瀏覽:245
凱美瑞20e配置怎麼樣 發布:2025-08-21 02:08:43 瀏覽:504