REMOTE_LOGIN_PASSWORDFILE和SQLNET.AUTHENTICATION_SERVICES参数的研究


在安全加固过程中,经常会遇到REMOTE_LOGIN_PASSWORDFILE和SQLNET.AUTHENTICATION_SERVICES这两个加固项,如果对这两项理解不清楚,就进行安全加固,可能会导致严重的影响。这里就这两项做一些测试,以便加强对参数的理解。
REMOTE_LOGIN_PASSWORDFILE参数的含义:
REMOTE_LOGIN_PASSWORDFILE:指定是否使用口令文件验证特权用户,其值为none、exclusive(默认)、shared。
none:禁用口令文件。
exclusive:默认值,以独占方式使用口令文件,在这种情况下,可以执行对sysdba特权用户的增加、修改、删除,这些修改会保存在口令文件中。
shared:在多个数据库之间共享口令文件。这种模式下口令文件不能被修改,不能将sysdba权限再授予非sys用户;不能修改具有sysdba特权用户的密码,即使是sys用户也不能修改。
SQLNET.AUTHENTICATION_SERVICES参数的含义:

这个参数在sqlnet.ora文件中设置,针对具有sysdba特权的用户,决定是否使用操作系统认证登录数据库。
有以下几个值:
NONE:禁用操作系统认证,这时只能通过口令文件认证登录数据库。
ALL:在linux/unix平台,启用操作系统认证登录数据库。
NTS:在windows平台,启用操作系统认证登录数据库。
一般在安全加固时,REMOTE_LOGIN_PASSWORDFILE会设置为none,
SQLNET.AUTHENTICATION_SERVICES也会设置为none。这样设置会有什么效果呢?
下面就这两个参数的设置,做一下测试。
测试环境:
os:oracle linux 5.2
oracle database: 10.2.0.1
测试用户:sys 测试密码:Pwd1234
测试TNS: tnsdb                                                                                                                                                                                                                                                                                                                                
测试1:     
REMOTE_LOGIN_PASSWORDFILE为exclusive,SQLNET.AUTHENTICATION_SERVICES不设置。 
服务端(通过操作系统认证登录):                                                                                                                        
sqlplus /nolog
conn /as sysdba
conn sys/Pwd1234 as sysdba
conn sys/Pwd4321 as sysdba
conn u1/Pwd1234 as sysdba
conn u1/Pwd4321 as sysdba                                                                                                                                                                                                                                                                                                                           
客户端(通过口令文件认证登录):
sqlplus /nolog
conn sys/Pwd1234@tnsdb as sysdba
conn sys/Pwd4321@tnsdb as sysdba
conn u1/Pwd1234@tnsdb as sysdba
conn u1/Pwd4321@tnsdb as sysdba
                                             
服务端:
odb1.test.com-PROD1> sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on Sun Jun 22 12:43:53 2014
Copyright (c) 1982, 2005, Oracle.  All rights reserved.  
SQL>
SQL> conn /as sysdba
Connected.
SQL>
SQL> select username from dba_users where username='U1';  --查出不存在U1用户
no rows selected
SQL>
SQL> conn sys/Pwd1234 as sysdba
Connected.
SQL>
SQL> conn sys/Pwd4321 as sysdba
Connected.
SQL>
SQL> conn u1/Pwd1234 as sysdba
Connected.
SQL>
SQL> conn u1/Pwd4321 as sysdba
Connected.                                                                                                                                                                                                                

客户端:
odb1.test.com-PROD1> sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on Sun Jun 22 12:43:53 2014                                                                                                                          
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
SQL>
SQL> conn sys/Pwd1234@tnsdb as sysdba
Connected.
SQL> 
SQL> conn sys/Pwd4321@tnsdb as sysdba
ERROR:
ORA-01017: invalid username/password; logon denied
SQL> conn u1/Pwd1234@tnsdb as sysdba
ERROR:
ORA-01031: insufficient privileges
Warning: You are no longer connected to ORACLE.
SQL>
SQL> conn u1/Pwd4321@tnsdb as sysdba
ERROR:
ORA-01031: insufficient privileges                                                                                                                                                                                                                                                                                                                     
测试总结:当REMOTE_LOGIN_PASSWORDFILE为exclusive,SQLNET.AUTHENTICATION_SERVICES不设置时,
在服务端,使用操作系统认证,可以不输入用户和密码,就能登录数据库。如果要输入用户和密码,即使输入的用户不存在或者密码错误或者用户与密码都不对,也可以成功登录数据库。                                                                                                                                                                                   
在客户端,以sys远程登录数据库,是通过口令文件验证登录数据库,必须指定正确的用户和密码才能登录。                                                                                                                                                                                                          
测试2:  
REMOTE_LOGIN_PASSWORDFILE为exclusive,SQLNET.AUTHENTICATION_SERVICES设置为none。
服务端(禁用操作系统认证登录,通过口令文件认证登录):
sqlplus /nolog
conn /as sysdba
conn sys/Pwd1234 as sysdba
conn sys/Pwd4321 as sysdba
conn u1/Pwd1234 as sysdba
conn u1/Pwd4321 as sysdba
                                                                                                                      
客户端(通过口令文件认证登录):
sqlplus /nolog
conn sys/Pwd1234@tnsdb as sysdba                                                                                                                                                                                                                                                                                                                       
服务端:
odb1.test.com-PROD1> sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on Sun Jun 22 13:02:14 2014
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
SQL>
SQL> conn /as sysdba
ERROR:
ORA-01031: insufficient privileges
SQL>
SQL> conn sys/Pwd1234 as sysdba
Connected.                                                                                                                                                                                                                                                                                                                                        
SQL> conn sys/Pwd4321 as sysdba
ERROR:
ORA-01017: invalid username/password; logon denied
SQL> conn u1/Pwd1234 as sysdba
ERROR:
ORA-01031: insufficient privileges
Warning: You are no longer connected to ORACLE.
SQL>
SQL> conn u1/Pwd4321 as sysdba
ERROR:
ORA-01031: insufficient privileges                                                                                                                                                                                                                                                                                                                     
客户端:
odb1.test.com-PROD1> sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on Sun Jun 22 13:04:06 2014
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
SQL>
SQL> conn sys/Pwd1234@tnsdb as sysdba
Connected.  
测试总结:当REMOTE_LOGIN_PASSWORDFILE为exclusive,SQLNET.AUTHENTICATION_SERVICES设置为none时,将禁用操作系统认证登录,服务端sys通过口令文件验证登录,客户端sys通过口令文件验证登录。                                                                                                                                                                   
                                                                                                                       
测试3:  
REMOTE_LOGIN_PASSWORDFILE为none,SQLNET.AUTHENTICATION_SERVICES不设置。
服务端(通过操作系统认证登录):
sqlplus /nolog            
conn /as sysdba           
conn sys/Pwd1234 as sysdba
conn sys/Pwd4321 as sysdba
conn u1/Pwd1234 as sysdba 
conn u1/Pwd4321 as sysdba
                                                                                                                     
客户端(口令文件被禁用,不能通过口令文件认证登录):
sqlplus /nolog
conn sys/Pwd1234@tnsdb as sysdba                                                                                                                                                                                                                                                                                                     
服务端: odb1.test.com-PROD1> sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on Sun Jun 22 12:50:40 2014
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
SQL>
SQL> conn /as sysdba
Connected.
SQL>
SQL> show parameter REMOTE_LOGIN_PASSWORDFILE
NAME                                 TYPE        VALUE
----------------------------------- ----------- ------------------------------
REMOTE_LOGIN_PASSWORDFILE            string      EXCLUSIVE                                                                                                                                                                                                                                                                                             
SQL>
SQL> alter system set REMOTE_LOGIN_PASSWORDFILE=none scope=spfile;  
System altered.
SQL>
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL>
SQL> startup
ORACLE instance started.
Total System Global Area  167772160 bytes
Fixed Size                  1218316 bytes
Variable Size              75499764 bytes
Database Buffers           88080384 bytes
Redo Buffers                2973696 bytes
Database mounted.
Database opened.                                                                                                                                                                                                                                                                                                                                 
SQL> show parameter REMOTE_LOGIN_PASSWORDFILE
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
REMOTE_LOGIN_PASSWORDFILE            string      NONE                                                                                                                                                                                                                                                                                                  
SQL>
SQL> conn /as sysdba
Connected.
SQL> conn sys/Pwd1234 as sysdba
Connected.
SQL> conn sys/Pwd4321 as sysdba
Connected.
SQL> conn u1/Pwd1234 as sysdba
Connected.
SQL> conn u1/Pwd4321 as sysdba
Connected.                                                                                                                                                                                                                 
客户端:
odb1.test.com-PROD1> sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on Sun Jun 22 13:27:18 2014
Cpyright (c) 1982, 2005, Oracle.  All rights reserved.                                                                                                                                                     
SQL>
SQL> conn sys/Pwd1234@tnsdb as sysdba
ERROR:
ORA-01017: invalid username/password; logon denied
SQL>
测试总结:当REMOTE_LOGIN_PASSWORDFILE为none,SQLNET.AUTHENTICATION_SERVICES不设置时,服务端sys通过操作系统验证登录,客户端sys用户被禁止远程通过口令文件验证登录。                                                                                                                                                                                      
                                                                                                                       
测试4:  
REMOTE_LOGIN_PASSWORDFILE为none,SQLNET.AUTHENTICATION_SERVICES设置为none。
服务端(不能通过操作系统认证登录):
sqlplus /nolog
conn /as sysdba
conn sys/Pwd1234 as sysdba                                                                                                                                                                                                                                                                                                               
客户端(口令文件被禁用,不能通过口令文件认证登录):
sqlplus /nolog
conn sys/Pwd1234@tnsdb as sysdba
服务端:
odb1.test.com-PROD1> sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on Sun Jun 22 12:58:24 201
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
SQL>
SQL> conn /as sysdba
ERROR:
ORA-01031: insufficient privileges
SQL>
SQL> conn sys/Pwd1234 as sysdba
ERROR:
ORA-01017: invalid username/password; logon denied                                                                                                                                                                                                                                                                             
客户端:  
odb1.test.com-PROD1> sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on Sun Jun 22 13:20:46 2014
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
SQL>
SQL> conn sys/Pwd1234@tnsdb as sysdba
ERROR:
ORA-01017: invalid username/password; logon denied
SQL>
测试总结:当REMOTE_LOGIN_PASSWORDFILE为none,SQLNET.AUTHENTICATION_SERVICES设置为none时,服务端和客户端都禁止sys用户登录。

注意事项:
同时将REMOTE_LOGIN_PASSWORDFILE和SQLNET.AUTHENTICATION_SERVICES都设置为none,会导致sys用户或者具有sysdba特权的用户登录不上数据库。在实际生产环境中,备份用户通常是sys用户或者具有sysdba特权的用户,如果都将这两个参数设置为none,那么很可能导致备份用户无法登录数据库,进行备份。所以生产环境中对这两个参数的设置要格外注意,避免引起不必要的备份故障。







来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24626891/viewspace-2131731/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/24626891/viewspace-2131731/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值