天天看點

oracle的作業系統認證(connect as sysdba)登入方式

有一種oracle的登入方式是作業系統驗證登入方式,即常說的OS驗證登入方式,在SQL server中也有這種方式。

有些朋友經常使用connect / as sysdba登入,但不知道為什麼沒有提供使用者名和密碼就得到了sysdba的權限。還認為這樣是不是不安全呢?

Oracle在常見的多使用者作業系統上都可以進行OS認證方式來登入。例如solaris,windows等等。

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

在指令行下敲入compmgmt.msc 進入計算機管理

選擇本地使用者群組—>組

看是不是有一個組的名字叫做ORA_DBA

輕按兩下改組可以看到裡面是不是有administrator使用者

想一想你是不是以administrator使用者登入的呢?

再進入Oracle安裝目錄(即$ORACLE_HOME 一般是D:"oracle)"ora92"network"admin 找到sqlnet.ora檔案看看裡面的是不是有SQLNET.AUTHENTICATION_SERVICES= (NTS)

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

接下來的問題是,如果你的資料很重要,出于安全考慮,希望禁止這種作業系統認證的方式。那麼該怎麼做呢?

很簡單,找到在剛才的第6步驟中的sqlnet.ora檔案,将SQLNET.AUTHENTICATION_SERVICES= (NTS)改為SQLNET.AUTHENTICATION_SERVICES=none即可。你再試一下看看會不會得到到如下結果:

ERROR:

ORA-01031: insufficient privileges

警告: 您不再連接配接到 ORACLE。

如果你的機器不能以系統認證的方式登入,檢查以上幾個步驟,你總可以找到原因的。

上一篇: Bonecp配置