有一種oracle的登錄方式是操作系統驗證登錄方式,即常說的OS驗證登錄方式,在SQL server中也有這種方式。 有些朋友經常使用connect / as sysdba登錄,但不知道為什么沒有提供用戶名和密碼就得到了sysdba的權限。還認為這樣是不是不安全呢?
Oracle在常見的多用戶操作系統上都可以進行OS認證方式來登錄。例如solaris,windows等等。 下面以常見的windows操作系統來說明看一下這個操作系統認證方式登錄的原理。如果你的機器可以使用connect / as sysdba獲取sysdba的權限,那么下面的每一個過程你的機器上都會得到驗證,如果不能,按照下面的操作更改后,你也能以這種方式登錄。
- 在命令行下敲入compmgmt.msc 進入計算機管理
- 選擇本地用戶和組—>組
- 看是不是有一個組的名字叫做ORA_DBA
- 雙擊改組可以看到里面是不是有administrator用戶
- 想一想你是不是以administrator用戶登錄的呢?
- 對於11g,再進入Oracle安裝目錄(即$ORACLE_HOME )---->product---->network---->admin 找到sqlnet.ora文件看看里面的是不是有SQLNET.AUTHENTICATION_SERVICES= (NTS)
- 如果這些都對的話,你就能已操作系統認證的方式( / as sysdba)來登錄Oracle
接下來的問題是,如果你的數據很重要,出於安全考慮,希望禁止這種操作系統認證的方式。那么該怎么做呢? 很簡單,找到在剛才的第6步驟中的sqlnet.ora文件,將SQLNET.AUTHENTICATION_SERVICES= (NTS)改為SQLNET.AUTHENTICATION_SERVICES=none即可。你再試一下看看會不會得到到如下結果: ERROR: ORA-01031: insufficient privileges 警告: 您不再連接到 ORACLE。
如果你的機器不能以系統認證的方式登錄,檢查以上幾個步驟,你總可以找到原因的。