禁止操作系统验证登陆数据库

来源:互联网 发布:java简单计算器源代码 编辑:程序博客网 时间:2024/05/23 23:20
操作系统认证方式登录数据库的含义是:只要是以oracle用户登录的用户都可以使用“sqlplus / assysdba”方式连接到数据库中。
出于安全的考虑,我们可能需要禁用这个特性。当然,如果以操作系统认证方式无法顺利登录,也可以通过在这个方法来排查故障问题。

1.以操作系统认证方式登录数据库的方法
1)最基本的方法就是使用“sqlplus / assysdba”登录数据库
[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.


Connectedto:
Oracle Database 10g Enterprise Edition Release10.2.0.3.0 - 64bit Production
With the Partitioning,Oracle Label Security, OLAP and Data Mining Scoring Engineoptions

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.


Connectedto:
Oracle Database 10gEnterprise Edition Release 10.2.0.3.0 - 64bitProduction
With the Partitioning,Oracle Label Security, OLAP and Data Mining Scoring Engineoptions

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.


Connectedto:
Oracle Database 10gEnterprise Edition Release 10.2.0.3.0 - 64bitProduction
With the Partitioning,Oracle Label Security, OLAP and Data Mining Scoring Engineoptions

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.


Connectedto:
Oracle Database 10gEnterprise Edition Release 10.2.0.3.0 - 64bitProduction
With the Partitioning,Oracle Label Security, OLAP and Data Mining Scoring Engineoptions

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: invalidusername/password; logon denied


Enteruser-name:

提示无效的用户名和密码,无法完成登录!

3)使用“sqlplus / assysdba”登录方式进行验证
[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: insufficientprivileges


Enteruser-name:

此处显示权限不足,不允许登录!

4.进一步提高系统的安全性
因为sqlnet.ora文件默认条件下oracle用户可以对其进行任意修改,我们可以通过调整sqlnet.ora文件的owner和权限的方式进一步提高系统的安全性。

1)默认条件下sqlnet.ora文件的权限和owner信息
[oracle@secdb admin]$ ls -lsqlnet.ora
-rw-r--r-- 1 oracle oinstall266 Dec 26 21:00 sqlnet.ora

2)调整sqlnet.ora文件的owner和权限信息
[root@secdb admin]# chownroot:root sqlnet.ora
[root@secdb admin]# chmod744 sqlnet.ora
[root@secdb admin]# ls -lsqlnet.ora
-rwxr--r-- 1 root root 266Dec 26 21:00 sqlnet.ora

调整之后,oracle用户将再无权限对sqlnet.ora文件进行调整。

5.小结
操作系统认证方式连接数据库是默认行为,这种方法给我们管理数据库带来了极大的便利。在得到便捷操作的同时带来的是安全上的问题,权衡利弊,做出最后的选择。
“默认值”并不总是最美丽的!

0 0
原创粉丝点击