oracle資料庫通過sqlnet.ora檔案中的引數sqlnet.authentication_services,引數檔案中的
remote_login_passwordfile和口令檔案pwdsid.ora三者協同作用實現身份認證.
sqlnet.authentication_services=(nts)|(none)
nts:作業系統認證方式,不使用口令檔案;
none:口令檔案認證方式
remote_login_passwordfile=(none)|(exclusive)|(shared)
none:不使用口令檔案,作業系統認證;
exclusive:口令檔案認證方式,但只有乙個資料庫例項可以使用此檔案;
shared:口令檔案認證方式,可以有多個資料庫例項可以使用此檔案,但此設定下只有sys帳號能被識別,即
使檔案中存在其他使用者的資訊,也不允許他們以sysoper/sysdba登入.
(1).sqlnet.authentication_services=(nts)
同時remote_login_passwordfile=(none),此時為作業系統認證方式.
當以oracle_dba組下的使用者登入進入本地的作業系統後,進行以下操作:
sqlplus /nolog
sql>conn /assysdba
可以以sysdba身份登入成功,進行資料庫方面的操作.
當以遠端進行登入時,執行:
sqlplus /nolog
sql>conn /assysdba
則會顯示:
error:ora-01031:insufficient privileges
即不允許以sysdba身份遠端登入系統,這也是os認證這所以稱為本地認證方式的原因.
(2).sqlnet.authentication_services=(none),同時
remote_login_passwordfile=(exclusive)|(shared),配合口令檔案pwdsid.ora,此時為口令檔案認證方式
當在本地以oracle_dba組下的使用者登入進入系統時,進行以下操作:
sqlplus /nolog
sql>conn /assysdba
則會顯示:
error:ora-01031:insufficient privileges
在本地或遠端進行下邊的操作:
sqlplus /nolog
sql>conn sys/密碼@服務名assysdba
可以進入系統,也就是說口令檔案認證方式允許使用者從本地或遠端以sysdba身份登入,但必須提供口令字.
(3).sqlnet.authentication_services=(nts),同時
remote_login_passwordfile=(exclusive)|(shared),配合口令檔案pwdsid.ora,此時為作業系統認證和口
令檔案認證同時起作用:
當在本地以oracle_dba組下的使用者登入進入作業系統後,進行下邊的操作:
sqlplus /nolog
sql>conn /assysdba
可以進入系統.即作業系統認證方式登入成功.
當在遠端執行:
sqlplus /nolog
sql>conn sys/密碼@服務名assysdba
同時可正常登入到資料庫系統,即口令檔案認證方式登入成功.
附:要知道以下幾種登陸方式不是一種概念
sqlplus /nolog
1: conn /assysdba 本機登陸,使用作業系統認證,有無監聽都可以
2: conn sys/password assysdba 本機登陸,使用密碼檔案認證,有無監聽都可以
3: conn sys/password@dbname assysdba 可以本機可以遠端,使用密碼檔案認證,必須有監聽,必須有
tnsnames.ora,remote_login_passwordfile必須是exclusive
說明:從oracle的解釋可以知道,sqlnet.authentication_services=(nts)是windows系統專用的,對
linux/unix是不適用的。
最後做乙個簡單的總結:
1、在windows下,sqlnet.authentication_services必須設定為nts或者all才能使用os認證;不設定或者
設定為其他任何值都不能使用os認證。
2、在linux下,在sqlnet.authentication_services的值設定為all,或者不設定的情況下,os驗證才能
成功;設定為其他任何值都不能使用os認證。
注釋掉後,windows中的管理客戶端無法使用sys 或者 system帳號登入,取消注釋後可以登入。
ORACLE認證方式學習
一 密碼檔案修改 今天晚上本來是想連自己oracle 資料庫做powerdesigner版本控制的測試的。結果發現前些日子重灌了一下oracle 10g資料,裝完後一直沒有用,把密碼忘記了。想著oracle有方法可以更改的。採用了兩種方法去做這個修改操作。oracle 提供兩種驗證方式,一種是os驗...
mysql 密碼驗證 MYSQL 密碼認證方式
mysql 在認證的過程中,客戶端並不將mysql登入密碼傳輸到服務端進行驗證,在client連線到服務端後,服務端隨機生成乙個公鑰,然後將公鑰發給client端,client端利用公鑰 登入密碼生成乙個新的隨機串,然後將新的串發往服務端。服務端check字串反解析,具體過程如下 server pu...
ORACLE口令檔案及密碼認證
oracle口令檔案中存放sysdba sysoper使用者的使用者名稱及口令,允許使用者通過口令檔案驗證。本文包括以下四部分 1 使用orapwd建立口令檔案 2 介紹口令檔案的三種狀態 3 在口令檔案中新增使用者 4 維護口令檔案 5 密碼認證 1.使用orapwd建立口令檔案 什麼時候需要建立...