浅谈禁用以操作系统认证方式登录Oracle数据库

数据库 Oracle
以操作系统认证的方式登录Oracle数据库,会对我们管理数据库带来极大的便利,也是Oracle数据库连接的默认行为。但这种认证方式在得到了便利的同时也带来了安全性的问题。 出于安全性的考虑,我们可能需要禁用这个特性。本文就如何禁用以操作系统认证方式登录Oracle数据库做了详细的说明,相信会给读者带来很多收获。

操作系统认证的方式登录数据库在通常情况下,会对我们管理数据库带来极大的便利,也是Oracle数据库连接的默认行为。操作系统认证方式登录数据库的含义是:只要是以oracle用户登录的用户都可以使用"sqlplus / as sysdba"方式连接到数据库中。

出于安全的考虑,我们可能需要禁用这个特性。当然,如果以操作系统认证方式无法顺利登录,也可以通过在这个方法来排查故障问题。

1.以操作系统认证方式登录数据库的方法

1)最基本的方法就是使用"sqlplus / as sysdba"登录数据库

  1. [oracle@secdb admin]$ sqlplus / as sysdba  
  2.  
  3. SQL*Plus: Release 10.2.0.3.0 - Production on Sun Dec 26 21:00:10 2010  
  4.  
  5. Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.  
  6.  
  7. Connected to:  
  8.  
  9. Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production  
  10.  
  11. With the Partitioning, Oracle Label Security, OLAP and Data Mining Scoring Engine options  
  12.  
  13. SQL> 

斜杠"/"左面是用户名,右面是密码,这里表示不给出用户名和密码一样可以登录到数据库系统中。

2)使用正确的用户名和密码登陆数据库

  1. [oracle@secdb admin]$ sqlplus sys/oracle as sysdba  
  2.  
  3. SQL*Plus: Release 10.2.0.3.0 - Production on Sun Dec 26 21:00:52 2010  
  4.  
  5. Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.  
  6.  
  7. Connected to:  
  8.  
  9. Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production  
  10.  
  11. With the Partitioning, Oracle Label Security, OLAP and Data Mining Scoring Engine options  
  12.  
  13. SQL> 

显然,登录完全没有问题。

3)使用错误的用户名和密码登陆数据库

  1. [oracle@secdb admin]$ sqlplus sys_1/oracle_1 as sysdba  
  2.  
  3. SQL*Plus: Release 10.2.0.3.0 - Production on Sun Dec 26 21:01:07 2010  
  4.  
  5. Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.  
  6.  
  7. Connected to:  
  8.  
  9. Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production  
  10.  
  11. With the Partitioning, Oracle Label Security, OLAP and Data Mining Scoring Engine options  
  12.  
  13. SQL> 

这种操作系统认证方式登录数据库,即使使用的是错误的用户名和密码依然可以顺利的登录到数据库中。

#p#

2.禁用操作系统认证方式登录数据库

禁用的方法很简单,仅需在sqlnet.ora配置文件中添加一条"SQLNET.AUTHENTICATION_SERVICES=(NONE)"即可。

调整sqlnet.ora文件内容。

  1. [oracle@secdb ~]$ vi $ORACLE_HOME/network/admin/sqlnet.ora  
  2.  
  3. SQLNET.AUTHENTICATION_SERVICES=(NONE)  

1)必须使用正确的用户名和密码才能登陆到系统中

  1. [oracle@secdb admin]$ sqlplus sys/oracle as sysdba  
  2.  
  3. SQL*Plus: Release 10.2.0.3.0 - Production on Sun Dec 26 21:58:29 2010  
  4.  
  5. Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.  
  6.  
  7. Connected to:  
  8.  
  9. Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production  
  10.  
  11. With the Partitioning, Oracle Label Security, OLAP and Data Mining Scoring Engine options  
  12.  
  13. SQL> 

2)使用正确的用户名和错误的密码进行登录测试

  1. [oracle@secdb admin]$ sqlplus sys/oracle_1 as sysdba  
  2.  
  3. SQL*Plus: Release 10.2.0.3.0 - Production on Sun Dec 26 21:59:14 2010  
  4.  
  5. Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.  
  6.  
  7. ERROR:  
  8.  
  9. ORA-01017: invalid username/password; logon denied  
  10.  
  11. Enter user-name: 

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

3)使用"sqlplus / as sysdba"登录方式进行验证

  1. [oracle@secdb admin]$ sqlplus / as sysdba  
  2.  
  3. SQL*Plus: Release 10.2.0.3.0 - Production on Sun Dec 26 21:58:05 2010  
  4.  
  5. Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.  
  6.  
  7. ERROR:  
  8.  
  9. ORA-01031: insufficient privileges  
  10.  
  11. Enter user-name: 

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

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

1)默认条件下sqlnet.ora文件的权限和owner信息

  1. [oracle@secdb admin]$ ls -l sqlnet.ora  
  2.  
  3. -rw-r--r-- 1 oracle oinstall 266 Dec 26 21:00 sqlnet.ora 

2)调整sqlnet.ora文件的owner和权限信息

  1. [root@secdb admin]# chown root:root sqlnet.ora  
  2.  
  3. [root@secdb admin]# chmod 744 sqlnet.ora  
  4.  
  5. [root@secdb admin]# ls -l sqlnet.ora  
  6.  
  7. -rwxr--r-- 1 root root 266 Dec 26 21:00 sqlnet.ora 

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

#p#

3.验证是否生效

1)必须使用正确的用户名和密码才能登陆到系统中

  1. [oracle@secdb admin]$ sqlplus sys/oracle as sysdba  
  2.  
  3. SQL*Plus: Release 10.2.0.3.0 - Production on Sun Dec 26 21:58:29 2010  
  4.  
  5. Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.  
  6.  
  7. Connected to:  
  8.  
  9. Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production  
  10.  
  11. With the Partitioning, Oracle Label Security, OLAP and Data Mining Scoring Engine options  
  12.  
  13. SQL> 

2)使用正确的用户名和错误的密码进行登录测试

  1. [oracle@secdb admin]$ sqlplus sys/oracle_1 as sysdba  
  2.  
  3. SQL*Plus: Release 10.2.0.3.0 - Production on Sun Dec 26 21:59:14 2010  
  4.  
  5. Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.  
  6.  
  7. ERROR:  
  8.  
  9. ORA-01017: invalid username/password; logon denied  
  10.  
  11. Enter user-name: 

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

3)使用"sqlplus / as sysdba"登录方式进行验证

  1. [oracle@secdb admin]$ sqlplus / as sysdba  
  2.  
  3. SQL*Plus: Release 10.2.0.3.0 - Production on Sun Dec 26 21:58:05 2010  
  4.  
  5. Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.  
  6.  
  7. ERROR:  
  8.  
  9. ORA-01031: insufficient privileges  
  10.  
  11. Enter user-name: 

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

#p#

4.进一步提高系统的安全性

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

1)默认条件下sqlnet.ora文件的权限和owner信息

  1. [oracle@secdb admin]$ ls -l sqlnet.ora  
  2.  
  3. -rw-r--r-- 1 oracle oinstall 266 Dec 26 21:00 sqlnet.ora 

2)调整sqlnet.ora文件的owner和权限信息

  1. [root@secdb admin]# chown root:root sqlnet.ora  
  2.  
  3. [root@secdb admin]# chmod 744 sqlnet.ora  
  4.  
  5. [root@secdb admin]# ls -l sqlnet.ora  
  6.  
  7. -rwxr--r-- 1 root root 266 Dec 26 21:00 sqlnet.ora 

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

【编辑推荐】 

  1. Oracle分页小谈
  2. 简单说说Oracle分区 
  3. 请注意Oracle对象的大小写
  4. Oracle数据库日常维护知识总结

 

责任编辑:赵鹏 来源: 中国IT实验室
相关推荐

2010-11-15 15:57:59

oracle操作系统认

2010-04-08 17:31:51

Unix操作系统

2018-04-16 09:21:04

Oracle数据库操作系统存储

2009-05-19 10:10:01

Oracle时间加减时间操作

2009-07-15 16:23:54

Java JDBC

2009-04-16 09:08:21

Oracle开发经验

2010-08-10 15:02:18

Oracle认证数据库

2021-11-26 22:07:57

数据库管理Mongodb

2011-03-31 09:55:59

Oracle数据库开发技术

2009-02-03 08:58:13

SQL*Net配置网络应用

2019-12-17 18:04:09

操作系统Linux中央处理器

2010-05-06 10:52:36

Oracle9i

2010-04-22 14:18:42

Aix操作系统

2010-05-19 17:01:04

MySQL数据库

2010-04-14 13:25:15

Oracle数据

2009-10-13 09:43:43

Oracle数据库备份

2009-11-16 16:51:11

操作系统Oracle优

2011-03-11 17:16:02

JSP操作数据库访问效率

2010-06-10 08:48:14

2009-04-01 14:42:11

操作系统同步MySQL
点赞
收藏

51CTO技术栈公众号