操作系统认证的方式登录数据库在通常情况下,会对我们管理数据库带来极大的便利,也是Oracle数据库连接的默认行为。操作系统认证方式登录数据库的含义是:只要是以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>
这种操作系统认证方式登录数据库,即使使用的是错误的用户名和密码依然可以顺利的登录到数据库中。
#p#
2.禁用操作系统认证方式登录数据库
禁用的方法很简单,仅需在sqlnet.ora配置文件中添加一条"SQLNET.AUTHENTICATION_SERVICES=(NONE)"即可。
调整sqlnet.ora文件内容。
- [oracle@secdb ~]$ vi $ORACLE_HOME/network/admin/sqlnet.ora
- SQLNET.AUTHENTICATION_SERVICES=(NONE)
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:
此处显示权限不足,不允许登录!
因为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文件进行调整。
#p#
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:
此处显示权限不足,不允许登录!
#p#
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文件进行调整。
【编辑推荐】