當我們建立了Oracle資料庫後,必須合理地配置監聽程序和網路服務名後,客戶應用才能訪問我們的資料庫。所以伺服器端必須配置監聽程序,而網路服務名在客戶端跟伺服器端都可以配置。看如下說明:
1。伺服器端的監聽程序用於接收客戶端的連接請求。
在建立了Oracle資料庫之後,為了使得客戶應用可以訪問特定資料庫,必須要在監聽程序中追加該資料庫。一個監聽程序可以監聽多個Oracle資料庫,多個監聽程序也可以監聽同一個資料庫。但是監聽程序只能用於同一台伺服器上的Oracle資料庫。安裝了Oracle時,會自動建立默認的監聽程序LISTENER.一般只需要將需要使用的資料庫追加到這個監聽程序上就可以了。
監聽程序使用的默認埠為1521
保存了監聽程序配置之後,必須要重新啟動監聽程序才能生效。windows中可以在「服務」中重新啟動。
例如:假如我在10.150.27.45上裝了ORACLE伺服器,埠是1521,為了讓其他客戶端應用(不管是本地的還是其他的)可以訪問我的名為TESTDB的資料庫,首先得在伺服器上配置監聽器:進入NET MANAGER 新建一個埠,如命名為LISTENER,配置主機名:如10.150.27.45和埠1521,配置全局資料庫名:如TESTDB,然後保存就好了
2。客戶端需要配置網路服務名,應用程序使用網路服務名才能訪問Oracle資料庫, 一般使用資料庫名作為服務名。注意: 網路協議要與監聽程序的一致(如TCP/IP)
例如:假如我在10.150.27.46上裝了ORACLE客戶端,進入NET MANAGER,新建一服務命名,如:TEST,然後配置你要連接的DB伺服器名字和埠好,如:10.150.27.45, 1521,配置服務名,必須跟監聽埠的全局資料庫名一樣:如TESTDB,然後你可以通過輸入用戶名和密碼測試連接成不成功了
3。利用客戶端工具測試
在10.150.27.46上通過sqlPLUS連接10.150.27.45上的DB:TESTDB, 輸入用戶名密碼,HOST STRING輸入TEST,看連接是不是成功
經過以上分析,你是不是明白ORACLE 的 NET MANAGER是怎麼一回事了呢?
㈡ 如何安裝和使用oracle資料庫
一、Oracle 下載
注意Oracle分成兩個文件,下載完後,將兩個文件解壓到同一目錄下即可。 路徑名稱中,最好不要出現中文,也不要出現空格等不規則字元。
二、Oracle安裝
1、解壓縮文件,將兩個壓縮包一起選擇, 滑鼠右擊 -> 解壓文件
2.兩者解壓到相同的路徑中,
3. 到相應的解壓路徑上面,找到可執行安裝文件【 setup.exe 】雙擊安裝。
4. 安裝第一步:配置安全更新,這步可將自己的電子郵件地址填寫進去(也可以不填寫,只是收到一些沒什麼用的郵件而已)。取消下面的「我希望通過My Oracle Support接受安全更新(W)」。
5. 安全選項,直接選擇默認創建和配置一個資料庫(安裝完資料庫管理軟體後,系統會自動創建一個資料庫實例)。
6. 系統類,直接選擇默認的桌面類就可以了。(若安裝到的電腦是,個人筆記本或個人使用的電腦使用此選項)
7. 典型安裝。 重要步驟。建議只需要將Oracle基目錄更新下,目錄路徑不要含有中文或其它的特殊字元。全局資料庫名可以默認,且口令密碼,必須要牢記。密碼輸入時,有提示警告,不符合Oracel建議時不用管。 (因Oracel建議的密碼規則比較麻煩, 必須是大寫字母加小寫字母加數字,而且必須是8位以上。麻煩,可以輸入平常自己習慣的短小密碼即可)
8. 若輸入的口令短小簡單,安裝時會提示如下。直接確認Y繼續安裝就是了。
9. 先決條件檢查。 安裝程序會檢查軟硬體系統是否滿足,安裝此Oracle版本的最低要求。 直接下一步就OK 了。
10. 概要 安裝前的一些相關選擇配置信息。 可以保存成文件 或 不保存文件直接點完成即可。
11. 安裝產品 自動進行,不用管。
12. 資料庫管理軟體文件及dbms文件安裝完後,會自動創建安裝一個實例資料庫默認前面的orcl名稱的資料庫。
13. 實例資料庫創建完成了,系統 默認是把所有賬戶都鎖定不可用了(除sys和system賬戶可用外),建議點右邊的口令管理,將常用的scott賬戶解鎖並輸入密碼。
14. 解鎖scott賬戶, 去掉前面的綠色小勾,輸入密碼。同樣可以輸入平常用的短小的密碼,不必非得按oracle建議的8位以上大小寫加數字。
15. 同樣,密碼不符合規則會提示。不用管它,繼續Y即可。
16. 安裝成功,完成即可。
三、安裝後,進入小測試下
可以通過開始,應用程序中的 "Oracle 11g" -> "應用程序開發" -> "Sql Developer 或Sql Plus" 連接。
注意第一次,使用SQL Developer時,會提示指定 java.exe的路徑,這里千萬別指定自己的java_home了(我就是開始不知道,指定一個JDK6,結束說不兼容。)可以使用Oracel安裝路徑下面的jdk路徑,如圖:
當然若不小心,選擇錯了。選擇了java_home中的高級版本,打開SQL Developer報錯後不兼容,也有辦法解決。可以在
【F:\app\chen\proct\11.2.0\dbhome_1\sqldeveloper\sqldeveloper\bin】路徑下找到【sqldeveloper.conf】文件後打開
找到SetJavaHome 所匹配的值,刪除後面的配置內容。保證時會提示,只讀文件不可覆蓋保存。此時可以另存為到桌面上,然後再回到bin目錄中刪除掉此文件,再把桌面上的文件復制過去,再打開時,重新選擇java.exe。此時選擇對就好了。
㈢ 筆記本需要流暢的運行oracle資料庫 需要怎樣的配置
eclipse是一個運行平台,還是比較好的,我也用過。oracle資料庫的啟動是比較佔用內存和cup使用率的,建議是配置越高越好,最好是1g以上的內存,最少不要低於1g,我以前用我朋友的才512m的機子裝過,裝上了,但是運行超慢,非常不好用。
㈣ Oracle資料庫安全性設計大家給點建議
Oracle資料庫本身的安全性建設
從總體上而言,Oracle資料庫是業界安全性方面最完備的資料庫產品。在資料庫安全性的國際標准中,Oracle通過了14項標準的測試,是所有資料庫產品中通過安全性標准最多、最全面的產品。Oracle在C2級的操作系統上(如商用UNIX,VMS操作系統),不僅滿足NCSC C2級安全標准,而且已經正式通過了NCSC C2標準的測試。在B1級的操作系統上不僅滿足NCSC B1級安全標准,而且已經通過了NCSC B1級標準的測試。
Oracle提供的主要安全性措施如下:
�8�9 身份認證功能(Authentication):識別訪問個體的身份
�8�9 數據訪問的機密性(Confidentialty):保證敏感數據訪問的機密性。
�8�9 數據完整性(Integrity):保證數據不被篡改。
�8�9 授權能力(Authorization):保證被授權用戶對數據的查詢和修改能力。
�8�9 訪問控制(Access Control):確定對指定數據的訪問能力。
�8�9 審計能力(Auditing):提供監測用戶行為的能力。
�8�9 私有性(Privacy):提供對敏感數據訪問的私密性。
�8�9 高可用性(Availability):保證數據和系統提供不間斷服務的能力。
�8�9 代理管理能力(Delegated Administration):提供對用戶帳號的集中管理功能。
下面將就應用系統本身對於Oracle提供的安全性措施作更深入的探討。
$PageTitle= Oracle的安全性領域}
三、 Oracle的安全性領域
�8�5 Profile控制
Oracle利用profile機制來管理會話資源佔用,同時也管理用戶密碼的安全策略。
通過profile我們可以實現:
某個特定用戶最多隻能佔用系統百分之幾的CPU時間?
某個特定用戶連接到資料庫之後能存活多長時間?
某個特定用戶連接到資料庫之後多長時間處於非活躍狀態就將被系統中斷連接?
用戶登錄密碼輸入錯誤多少次之後就將自動鎖定用戶?
用戶密碼的長度和包含的字元必須符合什麼樣的規則?
用戶密碼在多少天後將自動失效並要求設定新密碼?
�8�5 用戶許可權控制 (Privilage)
Oracle通過角色(Role),許可權(Privilage)等的一系列授予(Grant)和回收(Revoke)操作可以有效的進行用戶的許可權控制。
通過許可權控制我們可以實現:
某個特定用戶只能讀取而不能修改另一個用戶的表數據。
某個特定用戶只能運行Oracle資料庫系統的幾個存儲過程或者函數。
某個特定用戶自己能夠擁有修改某些數據的權力,但是卻無法給其它不擁有這個許可權的用戶授予修改該數據的權力。
某個特定用戶可以讀取數據但是無法創建新的表空間。
�8�5 虛擬專用資料庫(VPD)
虛擬專用資料庫 (VPD) 也稱為細粒度訪問控制,它提供強大的行級安全功能。它是在 Oracle8i 中推出的,已經受到廣泛的歡迎。
VPD 的工作方法是,通過透明地更改對數據的請求,基於一系列定義的標准向用戶提供表的局部視圖。在運行時,所有查詢都附加了謂詞,以便篩選出准許用戶看到的行。
也就是通過VPD的設置,我們可以做到行級安全性控制,特定的用戶即使對一張表有讀取許可權,那麼也只能看到符合自身許可權的記錄。
注意,在Oracle10g版本中,VPD得到增強,已經可以實現欄位級的安全性控制了。
實例及搭建步驟參看:利用VPD細粒度訪問策略實現行級安全性 Step By Step
�8�5 Orace Label Security
基於對由客戶提交的行級安全性的嚴格要求,Oracle Label Security(Oracle 資料庫企業版的選件之一)利用多級安全性概念解決了世界上政府和商業用戶在實際中遇到的數據安全和隱私問題。
OLS 通過利用數據敏感度標簽(例如「敏感」和「公司機密」)與用戶標簽授權,提供了完善的行級安全性控制。
OLS 使用政策概念來存儲標簽定義和授權。該政策可直接在資料庫中進行管理,或在 Oracle 身份管理中進行集中管理。
�8�5 Oracle Database Valut
通常資料庫管理員如果具有了DBA許可權,那麼就很難防止這樣的管理員查看應用程序數據。而Oracle Database Valut則解決了必須保護涉及合作夥伴、員工和顧客的敏感業務信息或隱私數據的客戶最為擔心的問題。
Oracle Database Vault 可防止高許可權的應用程序 DBA 訪問其他的應用程序、執行其許可權之外的任務。Oracle Database Vault 可在不影響應用程序功能的前提下快速而高效地保護現有程序。
Oracle Database Vault 可通過下列方法解決一些最為常見的安全問題和內部威脅:
1. 限制 DBA 和其他授權用戶訪問應用程序數據。
2. 防止DBA 操縱資料庫和訪問其他應用程序。Oracle Database Vault 提供了強大的職責劃分控制功能,可防止擅自更改資料庫。比如說如果一個用戶具有 CREATE USER 許可權,但不具備正確的用戶管理許可權,則 Oracle Database Vault 將阻止該 DBA 創建新用戶。
3. 更好的控制何人、何時、何地可以訪問應用程序。如日期時間、資料庫客戶端在網路上的位置之類的因素。
Oracle Database Valut是新的Oracle Database 10g企業版的選件。目前已經有Linux X86以及Solaris SPARC 64bit的版本可以下載使用了。
�8�5 用戶訪問審計
審計是Oracle安全性的另一個重要領域,我們還必須小心地計劃審計方案。有幾種方式可在Oracle中進行審計:
1. SQL審計命令(標准審計)
通過AUDIT語句我們可以對成功或者不成功的特定對象的讀取,更新操作進行審計。
標准審計只會記錄較少的跟蹤信息,比如發出該語句的用戶、時間、終端標識號等等。
該審計對於系統性能的影響更多地取決於對象的繁忙程度。
2. 用對象觸發器進行審計(也就是DML審計)
此類審計通常由客戶自行開發放置於特定資料庫對象上的觸發器,由於是自行開發,所以相對於標准審計則能夠更自由地記錄更多感興趣的跟蹤信息。比如更新操作將某個欄位從什麼原始值更新到了什麼新值。
該審計對於系統性能的影響更多地取決於對象的繁忙程度和觸發器的編寫水平。
3. 用系統級觸發器進行審計(記錄用戶登錄和退出)
當用戶登錄資料庫或者離開資料庫時,都可以通過自定義的觸發器來記錄用戶名稱,操作時間,終端標識號等信息。
由於觸發器觸發幾率小,所以該審計對於系統性能影響並不大。
4. 用LogMiner進行審計(也就是DML和DDL)
Oracle資料庫將所有的更新操作都記錄在重作日誌中,而Oracle提供了LogMiner工具用於挖掘重作日誌中的所有操作,相比起上述的各種審計方法來說,該種審計可能是信息最為完善,對於應用系統性能影響最小的方法。
此處稍微延展開來說一下,LogMiner是雙刃劍,既然可以用來審計,也就能夠被惡意使用作為數據竊取的工具。所以在數據本身的加密方面,Oracle同樣提供了多種解決方案,比如DBMS_OBFUSCATION_TOOLKIT,DBMS_CRYPTO和最新的透明數據加密,甚至在數據備份方面 Oracle也推出了Secure Backup來應對磁帶數據的加密,但是要注意到數據加密不應用作訪問控制的替代項,存儲加密的數據並不會在存儲介質本身提供額外的保護層,只是有助於在發生介質遭竊時保護諸如信用卡號之類的敏感數據。本文不再作更多的介紹。
5. 細精度審計(FGA)
細粒度審計 (FGA),是在 Oracle 9i 中引入的,能夠記錄 SCN 號和行級的更改以重建舊的數據,但是它們只能用於 select 語句,而不能用於 DML,如 update、insert 和 delete 語句。因此,對於 Oracle 資料庫 10g 之前的版本,使用觸發器雖然對於以行級跟蹤用戶初始的更改是沒有吸引力的選擇,但它也是唯一可靠的方法。
而Oracle10g種FGA功能的增強使其不但能夠支持select操作,同時也支持DML操作。在 Oracle 10g 中,審計已經從一個單純的「操作記錄者」成長為一個「事實記錄機制」,它能以一個非常詳細的級別來捕獲用戶的行為,這可以消除您對手動的、基於觸發器的審計的需要。它還結合了標准審計和 FGA 的跟蹤,這使其更易於跟蹤資料庫訪問,而不用考慮它是如何生成的。
通過細粒度審計我們可以記錄:
在早上九點到下午六點之間或在星期六和星期日對某個表進行了訪問。
使用了公司網路外部的某個 IP 地址。
選定或更新了特定列。
使用了該列的特定值。
㈤ 資料庫 oracle 11g r2安全更新設置問題,求助!
如果沒有購買license,不會給你更新的
㈥ oracle 對系統配置要求
安裝的軟體環境需求:
下列從兩個主要的方面闡述Oracle9i對軟體環境的要求。
對操作系統的要求建議在全新安裝的Windows 2000 Server上安裝資料庫伺服器,在Windows 2000 Server或Windows 98上安裝管理客戶機。
對虛擬內存的要求建議可以將虛擬內存適當進行調整以加快安裝速度。安裝的網路環境需求安裝Oracle9i資料庫伺服器,至少需要有兩台計算機,通過交換機或集線器構成區域網。
(6)oracle資料庫安全配置擴展閱讀:
Oracle零售雲服務充分集合了甲骨文公司在雲、安全、零售行業以及網路等領域的專業性,完美地對甲骨文雲進行了補充。甲骨文雲是目前業界最廣泛的公有雲服務產品組合,涵蓋SaaS、PaaS、DaaS及IaaS。
甲骨文雲現在每天支持6200萬用戶和230億項交易,在全球3萬台設備上運行,在19個數據中心有400PB級存儲。
Oracle 零售雲服務為零售高管提供了最前沿的工具,讓零售商能夠在不斷變化市場中時刻保持領先位置。Jill Puleri表示:「IT部門對於企業的價值是以月為衡量時間的,Oracle零售雲服務能夠顯著地加快部署時間,幫助零售業的IT部門將注意力從系統維護轉向業務的創新層面。」
㈦ 安裝Oracle資料庫的時候IP地址怎麼配置了
1、直接修改\oracle\proct\10.2.0\client_2\NETWORK\ADMIN\tnsnames的文件,直接添加
TOPPROD = (DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.15)(PORT = 1521)) )
(CONNECT_DATA =
(SERVICE_NAME = topprod) ) )
2、一種圖形界面,在安裝的時候,將oracle所在伺服器或電腦的IP加入
㈧ oracle 11g 安裝和使用
oracle 11g可以使用內置sysdba用戶來登錄,然後為sys和system用戶設置密碼,步驟如下:
1、打開運行窗口。
㈨ 安裝oracle的配置要求是什麼
如何連接oracle資料庫及故障解決辦法
如何配置才能使客戶端連到資料庫:
要使一個客戶端機器能連接oracle資料庫,需要在客戶端機器上安裝oracle的客戶端軟體,唯一的例外就是java連接資料庫的時候,可以用jdbc thin模式,不用裝oracle的客戶端軟體。加入你在機器上裝了oracle資料庫,就不需要在單獨在該機器上安裝oracle客戶端了,因為裝oracle資料庫的時候會自動安裝oracle客戶端。
用過sql server資料庫然後又用oracle的新手可能會有這樣的疑問:問什麼我用sql server的時候不用裝sql server的客戶端呢?原因很簡單,sql server也是microsoft的,它在操作系統中集成了sql server客戶端,如果microsoft與oracle有協議,將oracle客戶端也集成到操作系統中,那我們也就不用在客戶端機器裝oracle客戶端軟機就可訪問資料庫了,不過,這好像是不可能實現的事情。
也有的人會問:為什麼在sql server中沒有偵聽埠一說,而在oracle中要配置偵聽埠?其實sql server中也有偵聽埠,只不過microsoft將偵聽埠固定為1433,不允許你隨便改動,這樣給你一個錯覺感覺sql server中沒有偵聽埠,咳,microsoft把太多的東西都封裝到黑盒子里,方便使用的同時也帶來的需要副作用。而oracle中的偵聽埠直接在配置文件中,允許隨便改動,只不過無論怎樣改動,要與oracle伺服器端設置的偵聽埠一致。
好,言歸正傳,我們如何做才能使客戶端機器連接到oracle資料庫呢?
A. 安裝相關軟體
B. 進行適當的配置
A.在適當的位置安裝適當的軟體:
在客戶端機器:
1.在客戶端機器上安裝ORACLE的Oracle Net通訊軟體,它包含在oracle的客戶端軟體中。
2.正確配置了sqlnet.ora文件:
NAMES.DIRECTORY_PATH = (TNSNAMES, ….)
NAMES.DEFAULT_DOMAIN=DB_DOMAIN
一般情況下我們不用NAMES.DEFAULT_DOMAIN參數。如果想不用該參數用#注釋掉或將該參數刪除即可,對於NAMES.DIRECTORY_PATH參數採用預設值即可,對於NAMES.DEFAULT_DOMAIN參數有時需要注釋掉,在下面有詳細解釋。
3.正確配置了tnsname.ora文件
在伺服器端機器:
1.保證listener已經啟動
2.保證資料庫已經啟動。
如果資料庫沒有啟動,用:
Oracle 9i:
dos>sqlplus 「/ as sysdba」
sqlplus> startup
Oracle 8i:
dos>svrmgrl
svrmgrl>connect internal
svrmgrl>startup
命令啟動資料庫
如果listener沒有啟動,用:
lsnrctl start [listener name]
lsnrctl status [listener name]
命令啟動listener
B.進行適當的配置
如何正確配置tnsname.ora文件:
可以在客戶端機器上使用oracle Net Configuration Assistant或oracle Net Manager圖形配置工具對客戶端進行配置,該配置工具實際上修改tnsnames.ora文件。所以我們可以直接修改tnsnames.ora文件,下面以直接修改tnsnames.ora文件為例:
該文件的位置為: …\network\admin\tnsnames.ora (for windows)
…/network/admin/tnsnames.ora (for unix)
此處,假設伺服器名為testserver,服務名為orcl.testserver.com,使用的偵聽埠為1521,則tnsnams.ora文件中的一個test網路服務名(資料庫別名)為:
test =
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=testserver)(PORT=1521))
)
(CONNECT_DATA=(SERVICE_NAME=orcl.testserver.com)
)
)
此處的笑臉為)。
紅色的內容為需要根據實際情況修改的內容,現解釋如下:
PROTOCOL:客戶端與伺服器端通訊的協議,一般為TCP,該內容一般不用改。
HOST:資料庫偵聽所在的機器的機器名或IP地址,資料庫偵聽一般與資料庫在同一個機器上,所以當我說資料庫偵聽所在的機器一般也是指資料庫所在的機器。在UNIX或WINDOWS下,可以通過在資料庫偵聽所在的機器的命令提示符下使用hostname命令得到機器名,或通過ipconfig(for WINDOWS) or ifconfig(for UNIX)命令得到IP地址。需要注意的是,不管用機器名或IP地址,在客戶端一定要用ping命令ping通資料庫偵聽所在的機器的機器名,否則需要在hosts文件中加入資料庫偵聽所在的機器的機器名的解析。
PORT:資料庫偵聽正在偵聽的埠,可以察看伺服器端的listener.ora文件或在資料庫偵聽所在的機器的命令提示符下通過lnsrctl status [listener name]命令察看。此處Port的值一定要與資料庫偵聽正在偵聽的埠一樣。
SERVICE_NAME:在伺服器端,用system用戶登陸後,sqlplus> show parameter service_name命令察看。
如何利用配置的網路服務名連接到資料庫:
用sqlplus程序通過test網路服務名進行測試,如sqlplus system/manager@test。如果不能連接到資料庫,則在tnsname.ora文件中的test網路服務名(net service)後面加上sqlnet.ora文件中NAMES.DEFAULT_DOMAIN參數的值,此處我的參數值為testserver.com,將其加到網路服務名後面,修改後的tnsname.ora中關於該網路服務名的內容為:
什麼情況下會引起oracle自動設置NAMES.DEFAULT_DOMAIN參數?
出現這種情況的典型環境為windows的客戶端的『我得電腦à屬性à計算機名à更改à其它…à此計算機的主DNS後綴』中設置了『primary dns suffix』,因為在這種情況下安裝客戶端時,會在sqlnet.ora文件中自動設置NAMES.DEFAULT_DOMAIN參數,或許當把計算機加入域中安裝oracle客戶端時也會出現這種情況,有條件的話大家可以試一下。
我在設置oracle的客戶端時一般手工修改tnsnames.ora文件,但是還有許多人喜歡用圖形工具配置,該圖形工具最終還是修改tnsnames.ora文件,但是它有時會引起其它的問題:
在用oracle的圖形配置軟體'net assistant'或『Net Configuration Assistant』配置網路服務名時,假如已經設置了『primary dns suffix』,但是在圖形配置軟體中寫的網路服務名的名字中沒有『primary dns suffix』,如只是寫了test,則圖形配置軟體會自動在後面加上『primary dns suffix』,使之變為test.testserver.com,並存在tnsnames.ora中,而不管你的sqlnet.ora文件中是否有NAMES.DEFAULT_DOMAIN參數。此時,用圖形工具進行測試連接是通過的,但是假如此時sqlnet.ora文件中沒有NAMES.DEFAULT_DOMAIN參數,則你在使用網路服務名時應該使用在tnsnames.ora中的test.testserver.com,而不是你在圖形配置軟體中鍵入的test。解決的辦法為:
<1>可以在sqlnet.ora文件中設置NAMES.DEFAULT_DOMAIN= testserver.com,這時你可以用test或test.testserver.com連接資料庫
<2>在sqlnet.ora文件中不設置NAMES.DEFAULT_DOMAIN參數,在tnsnames.ora文件中將test.testserver.com中的.testserver.com去掉,這時你可以用test連接資料庫。
關於為什們在網路服務名後面加db_domain參數,需要了解sql*plus連接資料庫的原理,我在後面解決12154常見故障中給出了詳細的說明。
如果上面的招數還不奏效的話,只好用一下乾坤大挪移了。
將客戶端的網路服務名部分
test.testserver.com =
(DESCRIPTION=
(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=testserver)(PORT=1521))
)
(CONNECT_DATA=(SERVICE_NAME=orcl.testserver.com)
)
)
此處的笑臉為)。
拷貝到伺服器的tnsnames.ora文件中。然後再伺服器端用sqlplus system/[email protected]連接到資料庫。
如果能連接成功,說明你的客戶端與伺服器端的網路有問題。
如果連接不成功,用前面的部分檢查網路服務名部分部分是否正確,如果確信網路服務名部分正確而且所有的客戶端都連不上資料庫則可能為系統TCP/IP或Oracle系統有問題,建議重新安裝資料庫。
常見故障解決辦法:
TNS-12154 (ORA-12154):TNS:could not resolve service name
該錯誤表示用於連接的網路服務名在tnsnames.ora文件中不存在,如上面的tnsnames.ora中的網路服務名只有test,假如用戶在連接時用sqlplus system/manager@test1則就會給出TNS-12154錯誤。
要注意的是,有時即使在tnsnames.ora文件中有相應的網路服務名,可是用該網路服務名連接時還會出錯,出現這種情況的典型配置如下(在客戶端的機器上):
sqlnet.ora文件:
NAMES.DIRECTORY_PATH = (TNSNAMES, ….)
NAMES.DEFAULT_DOMAIN = server.com
tnsnames.ora文件:
test =
(DESCRIPTION=
(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=testserver)(PORT=1521))
)
(CONNECT_DATA=(SERVICE_NAME=orcl.testserver.com)
)
)
此處的笑臉為)。
sql*plus運行基本機理:
在用戶輸入sqlplus system/manager@test後,sqlplus程序會自動到sqlnet.ora文件中找NAMES.DEFAULT_DOMAIN參數,假如該參數存在,則將該參數中的值取出,加到網路服務名的後面,即此例中你的輸入由sqlplus system/manager@test自動變為sqlplus system/[email protected] ,然後再到tnsnames.ora文件中找test.server.com網路服務名,這當然找不到了,因為該文件中只有test網路服務名,所以報錯。解決的辦法就是將sqlnet.ora文件中的NAMES.DEFAULT_DOMAIN參數注釋掉即可,如#NAMES.DEFAULT_DOMAIN = server.com。假如NAMES.DEFAULT_DOMAIN參數不存在,則sqlplus程序會直接到tnsnames.ora文件中找test網路服務名,然後取出其中的host,port,tcp,service_name,利用這些信息將連接請求發送到正確的資料庫伺服器上。
另外原則上tnsnames.ora中的配置不區分大小寫,但是我的確遇到區分大小寫的情況,所以最好將使用的網路服務與tnsnames.ora中配置的完全一樣。
ORA-12514: TNS:listener could not resolve SERVICE_NAME given in connect Descriptor.
該錯誤表示能在tnsnames.ora中找到網路服務名,但是在tnsnames.ora中指定的SERVICE_NAME與伺服器端的SERVICE_NAME不一致。解決的辦法是修改tnsnames.ora中的SERVICE_NAME。
易混淆術語介紹:
Db_name:對一個資料庫(Oracle database)的唯一標識,該資料庫為第一章講到的Oracle database。這種表示對於單個資料庫是足夠的,但是隨著由多個資料庫構成的分布式資料庫的普及,這種命令資料庫的方法給資料庫的管理造成一定的負擔,因為各個資料庫的名字可能一樣,造成管理上的混亂。為了解決這種情況,引入了Db_domain參數,這樣在資料庫的標識是由Db_name和Db_domain兩個參數共同決定的,避免了因為資料庫重名而造成管理上的混亂。這類似於互連網上的機器名的管理。我們將Db_name和Db_domain兩個參數用』.』連接起來,表示一個資料庫,並將該資料庫的名稱稱為Global_name,即它擴展了Db_name。Db_name參數只能由字母、數字、』_』、』#』、』$』組成,而且最多8個字元。
Db_domain:定義一個資料庫所在的域,該域的命名同互聯網的』域』沒有任何關系,只是資料庫管理員為了更好的管理分布式資料庫而根據實際情況決定的。當然為了管理方便,可以將其等於互聯網的域。
Global_name:對一個資料庫(Oracle database)的唯一標識,oracle建議用此種方法命令資料庫。該值是在創建資料庫是決定的,預設值為Db_name. Db_domain。在以後對參數文件中Db_name與Db_domain參數的任何修改不影響Global_name的值,如果要修改Global_name,只能用ALTER DATABASE RENAME GLOBAL_NAME TO <db_name.db_domain>命令進行修改,然後修改相應參數。
Service_name:該參數是oracle8i新引進的。在8i以前,我們用SID來表示標識資料庫的一個實例,但是在Oracle的並行環境中,一個資料庫對應多個實例,這樣就需要多個網路服務名,設置繁瑣。為了方便並行環境中的設置,引進了Service_name參數,該參數對應一個資料庫,而不是一個實例,而且該參數有許多其它的好處。該參數的預設值為Db_name. Db_domain,即等於Global_name。一個資料庫可以對應多個Service_name,以便實現更靈活的配置。該參數與SID沒有直接關系,即不必Service name 必須與SID一樣。
Net service name:網路服務名,又可以稱為資料庫別名(database alias)。是客戶端程序訪問資料庫時所需要,屏蔽了客戶端如何連接到伺服器端的細節,實現了資料庫的位置透明的特性。
㈩ 如何保證oracle資料庫的安全性
資料庫安全性問題一直是圍繞著資料庫管理員的惡夢,資料庫數據的丟失
以及資料庫被非法用戶的侵入使得資料庫管理員身心疲憊不堪。本文圍繞數據
庫的安全性問題提出了一些安全性策略,希望對資料庫管理員有所幫助,不再
夜夜惡夢。資料庫安全性問題應包括兩個部分:
一、資料庫數據的安全
它應能確保當資料庫系統DownTime時,當資料庫數據存儲媒體被破
壞時以及當資料庫用戶誤操作時,資料庫數據信息不至於丟失。
二、資料庫系統不被非法用戶侵入
它應盡可能地堵住潛在的各種漏洞,防止非法用戶利用它們侵入數據
庫系統。
對於資料庫數據的安全問題,資料庫管理員可以參考有關系統雙機
熱備份功能以及資料庫的備份和恢復的資料。
以下就資料庫系統不被非法用戶侵入這個問題作進一步的闡述。
組和安全性:
在操作系統下建立用戶組也是保證資料庫安全性的一種有效方法。
Oracle程序為了安全性目的一般分為兩類:一類所有的用戶都可執行,
另一類只DBA可執行。在Unix環境下組設置的配置文件是/etc/group,
關於這個文件如何配置,請參閱Unix的有關手冊,以下是保證安全性的
幾種方法:
(1) 在安裝Oracle Server前,創建資料庫管理員組(DBA)而且
分配root和Oracle軟體擁有者的用戶ID給這個組。DBA能執
行的程序只有710許可權。在安裝過程中SQL*DBA系統許可權命令
被自動分配給DBA組。
(2) 允許一部分Unix用戶有限制地訪問Oracle伺服器系統,增加
一個由授權用戶組的Oracle組,確保給Oracle伺服器實用例
程Oracle組ID,公用的可執行程序,比如SQL*Plus,SQL*Fo
rms等,應該可被這組執行,然後該這個實用常式的許可權為
710,它將允許同組的用戶執行,而其他用戶不能。
(3) 改那些不會影響資料庫安全性的程序的許可權為711。
註:在我們的系統中為了安裝和調試的方便,Oracle資料庫中
的兩個具有DBA許可權的用戶Sys和System的預設密碼是manager。
為了您資料庫系統的安全,我們強烈建議您該掉這兩個用戶的
密碼,具體操作如下:
在SQL*DBA下鍵入:
alter user sys indentified by password;
alter user system indentified by password;
其中password為您為用戶設置的密碼。
Oracle伺服器實用常式的安全性:
以下是保護Oracle伺服器不被非法用戶使用的幾條建議:
(1) 確保$ORACLE_HOME/bin目錄下的所有程序的擁有權歸Oracle
軟體擁有者所有;
(2) 給所有用戶實用便程(sqiplus,sqiforms,exp,imp等)711權
限,使伺服器上所有的用戶都可訪問Oracle伺服器;
(3) 給所有的DBA實用常式(比如SQL*DBA)700許可權。Oracle伺服器
和Unix組當訪問本地的伺服器時,您可以通過在操作系統下把
Oracle伺服器的角色映射到Unix的組的方式來使用Unix管理服
務器的安全性,這種方法適應於本地訪問。
在Unix中指定Oracle伺服器角色的格式如下:
ora_sid_role[_dla]
其中
sid 是您Oracle資料庫的oracle_sid;
role 是Oracle伺服器中角色的名字;
d (可選)表示這個角色是預設值;
a (可選)表示這個角色帶有WITH ADMIN選項,
您只可以把這個角色授予其他角色,不能是其他用戶。
以下是在/etc/group文件中設置的例子:
ora_test_osoper_d:NONE:1:jim,narry,scott
ora_test_osdba_a:NONE:3:pat
ora_test_role1:NONE:4:bob,jane,tom,mary,jim
bin: NONE:5:root,oracle,dba
root:NONE:7:root
片語「ora_test_osoper_d」表示組的名字;片語「NONE」表示這
個組的密碼;數字1表示這個組的ID;接下來的是這個組的成員。前兩
行是Oracle伺服器角色的例子,使用test作為sid,osoper和osdba作
為Oracle伺服器角色的名字。osoper是分配給用戶的預設角色,osdba
帶有WITH ADMIN選項。為了使這些資料庫角色起作用,您必須shutdown
您的資料庫系統,設置Oracle資料庫參數文件initORACLE_SID.ora中
os_roles參數為True,然後重新啟動您的資料庫。如果您想讓這些角色
有connect internal許可權,運行orapwd為這些角色設置密碼。當您嘗
試connect internal時,您鍵入的密碼表示了角色所對應的許可權。
SQL*DBA命令的安全性:
如果您沒有SQL*PLUS應用程序,您也可以使用SQL*DBA作SQL查權
限相關的命令只能分配給Oracle軟體擁有者和DBA組的用戶,因為這些
命令被授予了特殊的系統許可權。
(1) startup
(2) shutdown
(3) connect internal
資料庫文件的安全性:
Oracle軟體的擁有者應該這些資料庫文件
($ORACLE_HOME/dbs/*.dbf)設置這些文件的使用許可權為0600:文件的
擁有者可讀可寫,同組的和其他組的用戶沒有寫的許可權。
Oracle軟體的擁有者應該擁有包含資料庫文件的目錄,為了增加
安全性,建議收回同組和其他組用戶對這些文件的可讀許可權。
網路安全性:
當處理網路安全性時,以下是額外要考慮的幾個問題。
(1) 在網路上使用密碼
在網上的遠端用戶可以通過加密或不加密方式鍵入密碼,
當您用不加密方式鍵入密碼時,您的密碼很有可能被非法用
戶截獲,導致破壞了系統的安全性。
(2) 網路上的DBA許可權控制
您可以通過下列兩種方式對網路上的DBA許可權進行控制:
A 設置成拒絕遠程DBA訪問;
B 通過orapwd給DBA設置特殊的密碼。
建立安全性策略:
系統安全性策略
(1) 管理資料庫用戶
資料庫用戶是訪問Oracle資料庫信息的途徑,因此,
應該很好地維護管理資料庫用戶的安全性。按照資料庫系統
的大小和管理資料庫用戶所需的工作量,資料庫安全性管理
者可能只是擁有create,alter,或drop資料庫用戶的一個
特殊用戶,或者是擁有這些許可權的一組用戶,應注意的是,只
有那些值得信任的個人才應該有管理資料庫用戶的許可權。
(2) 用戶身份確認
資料庫用戶可以通過操作系統,網路服務,或資料庫進行
身份確認,通過主機操作系統進行用戶身份認證的優點有:
A 用戶能更快,更方便地聯入資料庫;
B 通過操作系統對用戶身份確認進行集中控制:如果操作
系統與資料庫用戶信息一致,那麼Oracle無須存儲和管
理用戶名以及密碼;
C 用戶進入資料庫和操作系統審計信息一致。
(3) 操作系統安全性
A 資料庫管理員必須有create和delete文件的操作系統許可權;
B 一般資料庫用戶不應該有create或delete與資料庫相關文
件的操作系統許可權;
C 如果操作系統能為資料庫用戶分配角色,那麼安全性管理者
必須有修改操作系統帳戶安全性區域的操作系統許可權。
數據的安全性策略:
數據的生考慮應基於數據的重要性。如果數據不是很重要,那麼數
據的安全性策略可以稍稍放鬆一些。然而,如果數據很重要,那麼應該
有一謹慎的安全性策略,用它來維護對數據對象訪問的有效控制。
用戶安全性策略:
(1) 一般用戶的安全性
A 密碼的安全性
如果用戶是通過資料庫進行用戶身份的確認,那麼建議
使用密碼加密的方式與資料庫進行連接。這種方式的設置方
法如下:
在客戶端的oracle.ini文件中設置
ora_encrypt_login數為true;
在伺服器端的initORACLE_SID.ora文件中設置
dbling_encypt_login參數為true。
B 許可權管理
對於那些用戶很多,應用程序和數據對象很豐富的數據
庫,應充分利用「角色」這個機制所帶的方便性對許可權進行
有效管理。對於復雜的系統環境,「角色」能大大地簡化權
限的管理。
(2) 終端用戶的安全性
您必須針對終端用戶制定安全性策略。例如,對於一個有
很多用戶的大規模資料庫,安全性管理者可以決定用戶組分類,
為這些用戶組創建用戶角色,把所需的許可權和應用程序角色授
予每一個用戶角色,以及為用戶分配相應的用戶角色。當處理
特殊的應用要求時,安全性管理者也必須明確地把一些特定的
許可權要求授予給用戶。您可以使用「角色」對終端用戶進行權
限管理。
資料庫管理者安全性策略:
(1) 保護作為sys和system用戶的連接
當資料庫創建好以後,立即更改有管理許可權的sys和system用
戶的密碼,防止非法用戶訪問資料庫。當作為sys和system用戶
連入資料庫後,用戶有強大的許可權用各種方式對資料庫進行改動。
(2) 保護管理者與資料庫的連接
應該只有資料庫管理者能用管理許可權連入資料庫,當以sysdba
或startup,shutdown,和recover或資料庫對象(例如create,
drop,和delete等)進行沒有任何限制的操作。
(3) 使用角色對管理者許可權進行管理
應用程序開發者的安全性策略:
(1) 應用程序開發者和他們的許可權
資料庫應用程序開發者是唯一一類需要特殊許可權組完成自己
工作的資料庫用戶。開發者需要諸如create table,create
procere等系統許可權,然而,為了限制開發者對資料庫的操作,
只應該把一些特定的系統許可權授予開發者。
(2) 應用程序開發者的環境
A 程序開發者不應與終端用戶競爭資料庫資源;
B 用程序開發者不能損害資料庫其他應用產品。
(3) free和controlled應用程序開發
應用程序開發者有一下兩種許可權:
A free development
應用程序開發者允許創建新的模式對象,包括table,index,
procere,package等,它允許應用程序開發者開發獨立於其
他對象的應用程序。
B controlled development
應用程序開發者不允許創建新的模式對象。所有需要table,
indes procere等都由資料庫管理者創建,它保證了數據
庫管理者能完全控制數據空間的使用以及訪問資料庫信息的
途徑。但有時應用程序開發者也需這兩種許可權的混和。
(4) 應用程序開發者的角色和許可權
資料庫安全性管理者能創建角色來管理典型的應用程序開
發者的許可權要求。
A create系統許可權常常授予給應用程序開發者,以到於
他們能創建他的數據對象。
B 數據對象角色幾乎不會授予給應用程序開發者使用的
角色。
(5) 加強應用程序開發者的空間限制
作為資料庫安全性管理者,您應該特別地為每個應用程
序開發者設置以下的一些限制:
A 開發者可以創建table或index的表空間;
B 在每一個表空間中,開發者所擁有的空間份額。應用程
序管理者的安全在有許多資料庫應用程序的資料庫系統
中,您可能需要一應用程序管理者,應用程序管理者應
負責以下的任務:
C 為每一個應用程序創建角色以及管理每一個應用程序
的角色;
D 創建和管理資料庫應用程序使用的數據對象;
E 需要的話,維護和更新應用程序代碼和Oracle的存儲
過程和程序包。