【連線】禁止以作業系統認證方式登入資料庫

secooler發表於2010-12-26
作業系統認證方式登入資料庫的含義是:只要是以oracle使用者登入的使用者都可以使用“sqlplus / as sysdba”方式連線到資料庫中。
出於安全的考慮,我們可能需要禁用這個特性。當然,如果以作業系統認證方式無法順利登入,也可以透過在這個方法來排查故障問題。

1.以作業系統認證方式登入資料庫的方法
1)最基本的方法就是使用“sqlplus / as sysdba”登入資料庫
[oracle@secdb admin]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.3.0 - Production on Sun Dec 26 21:00:10 2010

Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, Oracle Label Security, OLAP and Data Mining Scoring Engine options

SQL>

斜槓“/”左面是使用者名稱,右面是密碼,這裡表示不給出使用者名稱和密碼一樣可以登入到資料庫系統中。

2)使用正確的使用者名稱和密碼登陸資料庫
[oracle@secdb admin]$ sqlplus sys/oracle as sysdba

SQL*Plus: Release 10.2.0.3.0 - Production on Sun Dec 26 21:00:52 2010

Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, Oracle Label Security, OLAP and Data Mining Scoring Engine options

SQL>

顯然,登入完全沒有問題。

3)使用錯誤的使用者名稱和密碼登陸資料庫
[oracle@secdb admin]$ sqlplus sys_1/oracle_1 as sysdba

SQL*Plus: Release 10.2.0.3.0 - Production on Sun Dec 26 21:01:07 2010

Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, Oracle Label Security, OLAP and Data Mining Scoring Engine options

SQL>

這種作業系統認證方式登入資料庫,即使使用的是錯誤的使用者名稱和密碼依然可以順利的登入到資料庫中。

2.禁用作業系統認證方式登入資料庫
禁用的方法很簡單,僅需在sqlnet.ora配置檔案中新增一條“SQLNET.AUTHENTICATION_SERVICES=(NONE)”即可。

調整sqlnet.ora檔案內容。
[oracle@secdb ~]$ vi $ORACLE_HOME/network/admin/sqlnet.ora
SQLNET.AUTHENTICATION_SERVICES=(NONE)

3.驗證是否生效
1)必須使用正確的使用者名稱和密碼才能登陸到系統中
[oracle@secdb admin]$ sqlplus sys/oracle as sysdba

SQL*Plus: Release 10.2.0.3.0 - Production on Sun Dec 26 21:58:29 2010

Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, Oracle Label Security, OLAP and Data Mining Scoring Engine options

SQL>

2)使用正確的使用者名稱和錯誤的密碼進行登入測試
[oracle@secdb admin]$ sqlplus sys/oracle_1 as sysdba

SQL*Plus: Release 10.2.0.3.0 - Production on Sun Dec 26 21:59:14 2010

Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.

ERROR:
ORA-01017: invalid username/password; logon denied


Enter user-name:

提示無效的使用者名稱和密碼,無法完成登入!

3)使用“sqlplus / as sysdba”登入方式進行驗證
[oracle@secdb admin]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.3.0 - Production on Sun Dec 26 21:58:05 2010

Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.

ERROR:
ORA-01031: insufficient privileges


Enter user-name:

此處顯示許可權不足,不允許登入!

4.進一步提高系統的安全性
因為sqlnet.ora檔案預設條件下oracle使用者可以對其進行任意修改,我們可以透過調整sqlnet.ora檔案的owner和許可權的方式進一步提高系統的安全性。

1)預設條件下sqlnet.ora檔案的許可權和owner資訊
[oracle@secdb admin]$ ls -l sqlnet.ora
-rw-r--r-- 1 oracle oinstall 266 Dec 26 21:00 sqlnet.ora

2)調整sqlnet.ora檔案的owner和許可權資訊
[root@secdb admin]# chown root:root sqlnet.ora
[root@secdb admin]# chmod 744 sqlnet.ora
[root@secdb admin]# ls -l sqlnet.ora
-rwxr--r-- 1 root root 266 Dec 26 21:00 sqlnet.ora

調整之後,oracle使用者將再無許可權對sqlnet.ora檔案進行調整。

5.小結
作業系統認證方式連線資料庫是預設行為,這種方法給我們管理資料庫帶來了極大的便利。在得到便捷操作的同時帶來的是安全上的問題,權衡利弊,做出最後的選擇。
“預設值”並不總是最美麗的!

Good luck.

secooler
10.12.26

-- The End --

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/519536/viewspace-682660/,如需轉載,請註明出處,否則將追究法律責任。

相關文章