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
文档被以下合辑收录
评论