操作系统认证方式登录数据库的含义是:只要是以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.小结
操作系统认证方式连接数据库是默认行为,这种方法给我们管理数据库带来了极大的便利。在得到便捷操作的同时带来的是安全上的问题,权衡利弊,做出最后的选择。
--转自