oracle登入驗證方式小結

2021-06-23 06:11:25 字數 3679 閱讀 7346

oracle

登入認證有兩種方式,基於作業系統的登入認證,基於

oracle

的驗證。

可以通過改變oracle_home/network/admin/

sqlnet.ora

檔案,可以修改

oracle

登入認證方式:

1、window作業系統時

sqlnet.authentication_services= (nts)是基於作業系統驗證;sqlnet.authentication_services= (none)是基於oracle驗證;sqlnet.authentication_services= (none,nts)是二者共存。

2、linux作業系統時:

預設情況下linux下的oracle資料庫sqlnet.ora檔案沒有sqlnet.authentication_services引數,此時是基於作業系統認證和oracle密碼驗證共存的,加上sqlnet.authentication_services引數後,不管sqlnet.authentication_services設定為none或者nts,都是基於oracle密碼驗證的。

windows下設定oracle登入驗證為作業系統驗證方式的方法:

1:把os使用者加到ora_dba組

2:設定sqlnet.ora sqlnet.authentication_services = (nts) 

當用windows的管理員帳戶登陸系統後登陸資料庫,只要加上 as sysdba,不管用什麼使用者名稱和密碼登陸,都正確,因為這時系統已經忽略了/ 兩邊的使用者名稱和密碼,預設就是sys使用者。例如:conn / as sysdba,登陸後可以用show user來驗證是哪個使用者(sys)

下面來看一下windows作業系統下這個作業系統認證方式登入的原理。如果你的機器可以使用connect / as sysdba獲取sysdba的許可權,那麼下面的每乙個過程你的機器上都會得到驗證,如果不能,按照下面的操作更改後,你也能以這種方式登入。

1、在命令列下敲入compmgmt.msc 進入計算機管理

2、選擇本地使用者和組—>組

3、看是不是有乙個組的名字叫做ora_dba

4、雙擊改組可以看到裡面是不是有administrator使用者

5、以administrator使用者登入作業系統。

6、再進入oracle安裝目錄(即$oracle_home 一般是d:"oracle)"ora92"network"admin 找到sqlnet.ora檔案看看裡面的是不是有      sqlnet.authentication_services= (nts)

7、如果這些都對的話,你就能已作業系統認證的方式(connect / as sysdba)來登入oracle

如果想禁止作業系統認證的登入方式,可以修改sqlnet.ora檔案

oracle兩種認證方式總結

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

1、sqlnet.authentication_services=(nts)|(none)

nts:作業系統認證方式,不使用口令檔案;

none:口令檔案認證方式

2、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@dbanote 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認證。

PHP http 登入驗證方式

1 http 驗證 用於使用者登入驗證 設定了驗證後 當訪問該目錄時 就需要登入驗證賬號密碼 一 建立 htaccess 檔案 用於修改配置等作用 填寫 驗證配置 需要乙個 htpasswd 檔案來存放 產生的賬號密碼 1 建立 檔案 htaccess 內容為 authuserfile e wamp...

oracle登入方式

管理工具1 sqlplus sqlplus 賬戶名 密碼 as 角色名 管理員的登入 sys system 1 sys登入 sqlplus sys oracle as sysdba sql plus release 11.2.0.1.0 production on fri oct 11 14 47 ...

Oracle 登入方式

1.本地登入 如果登入的是本地伺服器安裝的oracle資料庫,那麼可以使用命令 sqlplus as sysdba 以管理員許可權登入資料庫 注意 這裡說的登入到本地伺服器是包括 登入到實體伺服器 利用遠端桌面連線工具 xshell putty securecrt等遠端圖形或者命令管理工具登入到實體...