Oracle兩種登入認證方式

2021-08-02 06:03:27 字數 3169 閱讀 9336

oracle

資料庫通過

sqlnet.ora

檔案中的引數

sqlnet.authentication_services,

引數檔案中的

remote_login_passwordfile

和口令檔案

pwdsid.ora

三者協同作用實現身份認證.

sqlnet.ora檔案:

d:\study\oracle\product\11.2.0\dbhome_3\network\admin\sqlnet.ora

引數檔案

:d:\study\oracle\product\11.2.0\dbhome_3\dbs\init.ora

oracle11g 沒有

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

as sysdba

可以以sysdba身份登入成功

,進行資料庫方面的操作

.當以遠端進行登入時,執行

:sqlplus /nolog

sql>conn

as sysdba

則會顯示

: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

as sysdba

則會顯示

:error:ora-01031:insufficient privileges

在本地或遠端進行下邊的操作

:sqlplus /nolog

sql>conn sys/密碼@

服務名as 

sysdba

可以進入系統

,也就是說口令檔案認證方式允許使用者從本地或遠端以sysdba身份登入

,但必須提供口令字

.(3).sqlnet.authentication_services=(nts),

同時remote_login_passwordfile=(exclusive)|(shared),

配合口令檔案

pwdsid.ora,

此時為作業系統認證和口令檔案認證同時起作用

:當在本地以

oracle_dba

組下的使用者登入進入作業系統後

,進行下邊的操作

:sqlplus /nolog

sql>conn/

as sysdba

可以進入系統

.即作業系統認證方式登入成功

.當在遠端執行

:sqlplus /nolog

sql>conn sys/密碼@

服務名as 

sysdba

同時可正常登入到資料庫系統

,即口令檔案認證方式登入成功.

附:要知道以下幾種登陸方式不是一種概念

sqlplus /nolog

1:  conn/

as sysdba

本機登陸,使用作業系統認證,有無監聽都可以

2:  conn sys/passwordas 

sysdba

本機登陸,使用密碼檔案認證,有無監聽都可以

3:  conn sys/password@dbanoteas 

sysdba

可以本機可以遠端,使用密碼檔案認證,必須有監聽,必須有

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認證。

Oracle兩種登入認證方式

oracle 資料庫通過 sqlnet.ora 檔案中的引數 sqlnet.authentication services,引數檔案中的 remote login passwordfile 和口令檔案 pwdsid.ora 三者協同作用實現身份認證 sqlnet.authentication ser...

oracle兩種認證方式總結

oracle 資料庫通過 sqlnet.ora 檔案中的引數 sqlnet.authentication services,引數檔案中的 remote login passwordfile 和口令檔案 pwdsid.ora 三者協同作用實現身份認證 sqlnet.authentication ser...

oracle兩種認證方式總結

oracle 資料庫通過 sqlnet.ora 檔案中的引數 sqlnet.authentication services,引數檔案中的 remote login passwordfile 和口令檔案 pwdsid.ora 三者協同作用實現身份認證 sqlnet.authentication ser...