Oracle 的使用者根據所被授與權限分為系統許可權和對象許可權。其中最高的許可權是sysdba。 Sysdba具有控制Oracle一切行為的特權,諸如建立、啟動、關閉、恢複資料庫,使資料庫歸檔/非歸檔,備份資料表空間等關鍵性的動作只能通過具有sysdba許可權的使用者來執行。這些任務即使是普通DBA角色也不行。Sysoper是一個與sysdba相似的許可權,只不過比sysdba少了SYSOPER privileges WITH ADMIN OPTION,CREATE DATABASE,RECOVER DATABASE UNTIL這幾個許可權而已。這兩者的認證方式是相同的辦法,所以下面只介紹sysdba的認證管理。
一般對sysdba的管理有兩種方式: *** 作系統認證和密碼檔案認證。具體選擇那一種認證方式取決於:你是想在Oracle啟動並執行機器上維護資料庫,還是在一台機器上管理分佈於不同機器上的所有的Oracle資料庫。若選擇在本機維護資料庫,則選擇 *** 作系統認證可能是一個簡單易行的辦法;若有好多資料庫,想進行集中管理,則可以選擇password檔案認證方式。
比較直觀的說明了這個選擇權衡過程:
使用 *** 作系統認證方式的配置過程:
1. 在 *** 作系統中建立一個合法帳戶。
具體來說,在NT上,首先建立一個本機使用者組,取名為ORA__DBA,其中SID為該資料庫執行個體的SID,或者建立一個ORA_DBA地組,該組不對應於任何一個單獨的Oracle執行個體。這樣當一個NT上有好幾個Oracle執行個體時,不用分別管理。然後再NT上建立一個使用者,並且把它歸入該組中。但是實際上這兩步在Oracle8I安裝過程中已經自動完成了,一般不用手動進行。
第三步:在sqlnet.ora(位於$ORACLE_HOME/NETWORK/ADMIN目錄中)中,把SQLNET.AUTHENTICATION _ SERVICES 設定為SQLNET.AUTHENTICATION_SERVICES= (NTS),意思為使用NT認證方式。
第四步,在INIT.ORA中,把REMOTE_LOGIN_PASSWORD設定為NONE,意思是不用password認證方式。
完成以上步驟後,就可以在登入到NT後,直接在SQL*Plus 和SERVER MANAGER中CONNECT INTERNAL (CONNECT / AS SYSDBA)來作為超級使用者登入到Oracle中,執行一些只有超級使用者才能進行的 *** 作。
在Unix下,情況有些不同。畢竟這是兩個完全不同的 *** 作系統。
首先,在安裝Oracle之前,建立一個DBA組,這一步不用說了,不然是裝不上Oracle的。一般還建立一個名為Oracle的使用者,並把它加入到DBA組中。
第二步, 設定REMOTE_LOGIN_PASSWORD為NONE。在Oracle8.1以後,該參數預設為EXCLUSIVE。一定要記得改過來。
第三步, 用該使用者名稱登入Unix,運行SQL*Plus 或者SERVER MANAGER,輸入以下命令:CONNECT INTERNAL (CONNECT / AS SYSDBA)來登入到Oracle中。
使用password檔案認證的具體步驟:
Oracle提供orapwd公用程式來建立password 檔案,運用orapwd建立該認證方式的具體步驟如下:
1. 使用Orapwd公用程式來建立一個PASSWORD檔案。文法:
orapwd file=檔案名稱 password=internal使用者密碼 entried=entries.
詳細解釋:
檔案名稱要包含完整的全路徑名,如果不指定,Oracle把它預設放置$ORACLE_HOME/dbs(Unix下)或者$ORACLE_HOME/DATABASE(NT下)下。
使用者密碼是使用者internal的密碼。當然後來還可以再向裡邊加入別的超級使用者。
Entries表示最大允許有的超級使用者數目。這個是一個可選的。前兩者是必須指定的。一般會把它設定的比實際需要大一些,以免不夠。
2. 把INIT.ORA中REMOTE_LOGIN_PASSWORD設定為EXCLUSIVE 或SHARED.使用EXCLUSIVE表示只有當前INSTANCE使用這個password檔案。而且允許有別的使用者作為sysdba登入進系統裡邊,而若選擇了SHARED,則表明不止一個執行個體使用這個密碼檔案,伴隨著一個很強的約束:sysdba許可權只能授予sys和internal這兩個使用者名稱。(其實internal不是一個實際使用者,而只是sys作為sysdba登入時的一個別名。)
同時還要記得把sqlnet.ora檔案中SQLNET.AUTHENTICATION _SERVICES設定為NONE。一般在Unix下它是預設設定。在NT下,若選擇典型安裝時,會使用OS認證,而自訂時會使用密碼檔案認證方式。在安裝過程中會提示輸入INTERNAL密碼。這樣的話,就不用在手工建立密碼檔案和設定INTERNAL的密碼了。
3. 用SQL*Plus 或SERVER MANAGER運行下面命令登入進系統:CONNECT INTERNAL/密碼。