1 概述
在ORACLE中有一種特殊級別權(quán)限——sysdba權(quán)限,
sysdba權(quán)限擁有ORACLE系統(tǒng)的最高權(quán)限,有打開數(shù)據(jù)庫、關(guān)閉數(shù)據(jù)庫、恢復數(shù)據(jù)庫等高級權(quán)限,
我們在工程安裝和日常維護中經(jīng)常涉及到的sys用戶就有sysdba權(quán)限。
sysdba是管理oracle實例的,它的存在不依賴于整個數(shù)據(jù)庫完全啟動,只要實例啟動了,他就已經(jīng)存在
。以sysdba身份登陸,裝載數(shù)據(jù)庫、打開數(shù)據(jù)庫。只有數(shù)據(jù)庫打開了,或者說整個數(shù)據(jù)庫完全啟動后,dba角色才有了存在的基礎(chǔ)。
Sysdba用戶有兩種認證方式:操作系統(tǒng)(OS)認證和密碼文件認證,本文主要闡述的是sysdba權(quán)限不同認證方式的含義和配置說明。
????
os認證的意思把登錄數(shù)據(jù)庫的用戶和口令校驗放在了操作系統(tǒng)一級。
如果以安裝oracle時的用戶登錄os,那么此時在登錄oracle數(shù)據(jù)庫時不需要任何驗證。
?不論輸入什么用戶(哪怕這個用戶在數(shù)據(jù)庫中根本不存在),只要以sysdba權(quán)限連接數(shù)據(jù)庫,都可以連接上,并且連接用戶是sys,這樣很方便,有時候,如果忘記了數(shù)據(jù)庫的密碼,而又想登錄數(shù)據(jù)庫,可以通過這種方式,前提是在數(shù)據(jù)庫服務(wù)器上。
2 Sysdba登陸方式
六種登陸方法(采用操作系統(tǒng)認證):
1. sys/www as sysdba
2. sys / as sysdba
3. sys as sysdba
4. / as sysdba
5. sqlplus /as sysdba
6. sqlplus /nolog
前4種是在SQL*PLUS登陸框的用戶名欄目中輸入,后2種是DOS環(huán)境下直接輸入。
3 查看具有sysdba權(quán)限的用戶
以sys用戶登陸oracle,執(zhí)行select * from V_$PWFILE_USERS;可查詢到如下結(jié)果:
?????? sql> select * from V_$PWFILE_USERS;
USERNAME SYSDBA SYSOPER
------------------------------ ------ -------
SYS TRUE TRUE
?
(何為sysoper權(quán)限:
SYSOPER特權(quán)也是oracle數(shù)據(jù)庫的一種特殊權(quán)限。當用戶具有該特權(quán)時,可以啟動數(shù)據(jù)庫,關(guān)閉數(shù)據(jù)庫,但是不能建立數(shù)據(jù)庫,也不能執(zhí)行不完全恢復,這也是和SYSDBA的最大區(qū)別,另外,也不具有DBA角色的任何權(quán)限。
建立了Oracle數(shù)據(jù)庫后,默認情況下只有SYS用戶具有SYSOPER特權(quán)。需要注意的是,如果要以SYSOPER身份登陸,要求OS用戶必須具有OSOPER角色(windows平臺:ORA_OPER角色),當以SYSOPER身份登陸時,必須帶有AS SYSOPER選項。)
4 相關(guān)參數(shù)含義
(Sysdba權(quán)限認證過程主要涉及ORACLE中的相關(guān)參數(shù)和配置文件說明如下
4.1 SQLNET.AUTHENTICATION_SERVICES
該參數(shù)在$ORACLE_HOME/NETWORK/ADMIN/sqlnet.ora目錄下, 是ORACLE的網(wǎng)絡(luò)配置文件,SQLNET.AUTHENTICATION_SERVICES參數(shù)可以通常設(shè)置為:
■ NONE 采用密碼文件認證方式,需要輸入用戶名稱和密碼。
■ NTS 采用WINDOWS的安全認證方式(WINDOWS專用);
■ ALL 可以采用密碼和操作系統(tǒng)認證方式。
4.2 remote_login_passwordfile
該參數(shù)可以設(shè)置為:
■ NONE 采用操作系統(tǒng)方式認證,不需要用戶名稱密碼;
■ EXCLUSIVE 采用密碼文件方式認證,且密碼文件只能被一個實例使用;
■ SHARED 采用密碼文件方式認證, 密碼文件可以被多個實例使用;
(注意:如果密碼文件被多個實例使用,密碼文件的名稱為去掉sid后的文件名稱如pwd.ora)
5 各種認證的設(shè)置過程
要由于windows和UNIX平臺下的設(shè)置不盡相同,下面分別進行闡述:
5.1 WINDOWS下的設(shè)置:
5.1.1 操作系統(tǒng)認證設(shè)置步驟:
■目前登陸的操作系統(tǒng)用戶屬于ora_dba組,一般在安裝ORACLE時候創(chuàng)建;
■ Sqlnet.ora文件中的設(shè)置,需要設(shè)置SQLNET.AUTHENTICATION_SERVICES= (NTS),表示通過NT進行認證;
■ ORACLE參數(shù)文件中:remote_login_passwordfile(可以設(shè)置為NONE,EXCLUSIVE,SHARED),操作系統(tǒng)認證時候,可以隨便設(shè)置。
5.1.2 通過密碼文件進行認證設(shè)置步驟:
■ 密碼文件的路徑在$ORACLE_HOME/DATABASE/PWDSID.ORA,SID為實際的數(shù)據(jù)庫SID;
■ Sqlnet.ora文件中的設(shè)置, SQLNET.AUTHENTICATION_SERVICES可以不用設(shè)置,可以注釋掉,如果只想用密碼認證需要設(shè)置為NONE;
■ ORACLE參數(shù)文件中參數(shù):remote_login_passwordfile,必須設(shè)置為EXCLUSIVE,SHARED.
5.2 UNIX下的認證
5.2.1 通過操作系統(tǒng)認證設(shè)置:
■ 目前登陸的操作系統(tǒng)用戶屬于dba組,一般在安裝ORACLE時候建立;
■ Sqlnet.ora文件可以設(shè)置為默認不管,但是不能設(shè)置為NONE。
■ ORACLE參數(shù)文件中:remote_login_passwordfile(可以設(shè)置未NONE,EXCLUSIVE,SHARED),操作系統(tǒng)認證時候,可以隨便設(shè)置。
5.2.2 通過密碼文件進行認證:
■密碼文件的路徑在$ORACLE_HOME/dbs/orapwsid,SID為實際的數(shù)據(jù)庫SID;
■ Sqlnet.ora文件不需要設(shè)置。
■ RACLE參數(shù)文件中參數(shù):remote_login_passwordfile,必須設(shè)置為EXCLUSIVE,SHARED.)
(注意:不管怎樣如果remote_login_passwordfile設(shè)置為exclusive,shared數(shù)據(jù)庫啟動過程會查找密碼文件,設(shè)置為none不需要)
6 重建密碼文件
一般在sys用戶的密碼丟失或者想增加sysdba權(quán)限用戶的個數(shù)的時候,需要重新創(chuàng)建密碼文件。
創(chuàng)建密碼文件命令和解釋
orapwd file=filename password=sys用戶密碼 entries=entries.
■ File 為密碼文件的名稱,可以指定路徑,也可以不指定路徑,不指定路徑的情況,windows下該密碼文件的路徑為:$ORACLE_HOME\DATABASE\pwdsid.ora,unix下的路徑為:$ORACLE_HOME/dbs/orapwsid (sid為實例名),該參數(shù)必須輸入;
■ Password 為該用戶的密碼,該參數(shù)必須輸入;
■ Entries表示最大允許的超級用戶的個數(shù),該參數(shù)為可選參數(shù),按自己的需要輸入。
Example:orapwd file=orapwora92 password=manager entries=3。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
