淺談禁用以操作系統(tǒng)認(rèn)證方式登錄Oracle數(shù)據(jù)庫(kù)
操作系統(tǒng)認(rèn)證的方式登錄數(shù)據(jù)庫(kù)在通常情況下,會(huì)對(duì)我們管理數(shù)據(jù)庫(kù)帶來(lái)極大的便利,也是Oracle數(shù)據(jù)庫(kù)連接的默認(rèn)行為。操作系統(tǒng)認(rèn)證方式登錄數(shù)據(jù)庫(kù)的含義是:只要是以oracle用戶(hù)登錄的用戶(hù)都可以使用"sqlplus / as sysdba"方式連接到數(shù)據(jù)庫(kù)中。
出于安全的考慮,我們可能需要禁用這個(gè)特性。當(dāng)然,如果以操作系統(tǒng)認(rèn)證方式無(wú)法順利登錄,也可以通過(guò)在這個(gè)方法來(lái)排查故障問(wèn)題。
1.以操作系統(tǒng)認(rèn)證方式登錄數(shù)據(jù)庫(kù)的方法
1)最基本的方法就是使用"sqlplus / as sysdba"登錄數(shù)據(jù)庫(kù)
- [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>
斜杠"/"左面是用戶(hù)名,右面是密碼,這里表示不給出用戶(hù)名和密碼一樣可以登錄到數(shù)據(jù)庫(kù)系統(tǒng)中。
2)使用正確的用戶(hù)名和密碼登陸數(shù)據(jù)庫(kù)
- [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>
顯然,登錄完全沒(méi)有問(wèn)題。
3)使用錯(cuò)誤的用戶(hù)名和密碼登陸數(shù)據(jù)庫(kù)
- [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>
這種操作系統(tǒng)認(rèn)證方式登錄數(shù)據(jù)庫(kù),即使使用的是錯(cuò)誤的用戶(hù)名和密碼依然可以順利的登錄到數(shù)據(jù)庫(kù)中。
#p#
2.禁用操作系統(tǒng)認(rèn)證方式登錄數(shù)據(jù)庫(kù)
禁用的方法很簡(jiǎn)單,僅需在sqlnet.ora配置文件中添加一條"SQLNET.AUTHENTICATION_SERVICES=(NONE)"即可。
調(diào)整sqlnet.ora文件內(nèi)容。
- [oracle@secdb ~]$ vi $ORACLE_HOME/network/admin/sqlnet.ora
- SQLNET.AUTHENTICATION_SERVICES=(NONE)
1)必須使用正確的用戶(hù)名和密碼才能登陸到系統(tǒng)中
- [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)使用正確的用戶(hù)名和錯(cuò)誤的密碼進(jìn)行登錄測(cè)試
- [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:
提示無(wú)效的用戶(hù)名和密碼,無(wú)法完成登錄!
3)使用"sqlplus / as sysdba"登錄方式進(jìn)行驗(yàn)證
- [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:
此處顯示權(quán)限不足,不允許登錄!
因?yàn)閟qlnet.ora文件默認(rèn)條件下oracle用戶(hù)可以對(duì)其進(jìn)行任意修改,我們可以通過(guò)調(diào)整sqlnet.ora文件的owner和權(quán)限的方式進(jìn)一步提高系統(tǒng)的安全性。
1)默認(rèn)條件下sqlnet.ora文件的權(quán)限和owner信息
- [oracle@secdb admin]$ ls -l sqlnet.ora
- -rw-r--r-- 1 oracle oinstall 266 Dec 26 21:00 sqlnet.ora
2)調(diào)整sqlnet.ora文件的owner和權(quán)限信息
- [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
調(diào)整之后,oracle用戶(hù)將再無(wú)權(quán)限對(duì)sqlnet.ora文件進(jìn)行調(diào)整。
#p#
3.驗(yàn)證是否生效
1)必須使用正確的用戶(hù)名和密碼才能登陸到系統(tǒng)中
- [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)使用正確的用戶(hù)名和錯(cuò)誤的密碼進(jìn)行登錄測(cè)試
- [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:
提示無(wú)效的用戶(hù)名和密碼,無(wú)法完成登錄!
3)使用"sqlplus / as sysdba"登錄方式進(jìn)行驗(yàn)證
- [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:
此處顯示權(quán)限不足,不允許登錄!
#p#
4.進(jìn)一步提高系統(tǒng)的安全性
因?yàn)閟qlnet.ora文件默認(rèn)條件下oracle用戶(hù)可以對(duì)其進(jìn)行任意修改,我們可以通過(guò)調(diào)整sqlnet.ora文件的owner和權(quán)限的方式進(jìn)一步提高系統(tǒng)的安全性。
1)默認(rèn)條件下sqlnet.ora文件的權(quán)限和owner信息
- [oracle@secdb admin]$ ls -l sqlnet.ora
- -rw-r--r-- 1 oracle oinstall 266 Dec 26 21:00 sqlnet.ora
2)調(diào)整sqlnet.ora文件的owner和權(quán)限信息
- [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
調(diào)整之后,oracle用戶(hù)將再無(wú)權(quán)限對(duì)sqlnet.ora文件進(jìn)行調(diào)整。
【編輯推薦】
- Oracle分頁(yè)小談
- 簡(jiǎn)單說(shuō)說(shuō)Oracle分區(qū)
- 請(qǐng)注意Oracle對(duì)象的大小寫(xiě)
- Oracle數(shù)據(jù)庫(kù)日常維護(hù)知識(shí)總結(jié)