暂无图片
REMOTE_LOGIN_PASSWORDFILE和SQLNET.AUTHENTICATION_SERVICES参数的研究
最近更新:2022-10-30 20:24:33

适用范围

本次测试环境为: os:oracle linux 6.6 oracle database: 11.2.0.1 测试用户:sys 测试密码:Pwd1234 测试TNS: tnsdb

概述

在安全加固过程中,经常会遇到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。这样设置会有什么效果呢? 下面就这两个参数的设置,做一下测试。

测试

测试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 11.2.0.1.0 - Production on Sun Jun 22 12:43:53 2022 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>

......