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

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