1 SQLNET.AUTHENTICATION_SERVICES配置
SQLNET.AUTHENTICATION_SERVICES=(NTS)|(NONE)
SQLNET.AUTHENTICATION_SERVICES=(NTS): 操作系统认证方式,不使用口令文件
SQLNET.AUTHENTICATION_SERVICES=(NONE) : 口令文件认证方式
2 REMOTE_LOGIN_PASSWORDFILE参数
REMOTE_LOGIN_PASSWORDFILE=(NONE)|(EXCLUSIVE)|(SHARED)
REMOTE_LOGIN_PASSWORDFILE=(NONE): 不使用口令文件,操作系统认证
REMOTE_LOGIN_PASSWORDFILE=(EXCLUSIVE): 口令文件认证方式,但只有一个数据库实例可以使用此文件,系统允许将SYSOPER/SYSDBA授予除INTERNAL/SYS以外的其他用户,且以具有这类身份的其他用户登录是有效的
REMOTE_LOGIN_PASSWORDFILE=(SHARED): 口令文件认证方式,可有多个数据库实例使用此文件,但是此设置下只有INTERNAL/SYS帐号能被识别,即使文件中存有其他用户的信息,也不允许他们以SYSOPER/SYSDBA登录
3 两者关系
本地:
方式一: 本地oracle安装用户 sqlplus / as sysdba
方式二: 本地oracle安装用户 sqlplus sys/sys as sysdba
方式三: 本地oracle安装用户 sqlplus sys/sys@linuxtest as sysdba
远程:
方式四: 远程的用户 sqlplus "sys/sys@linuxtest as sysdba"
方式五: 远程的用户 sqlplus "sys/sys@192.168.128.2:1521/test as sysdba"
其中:
密码是sys
tns的服务名是linuxtest
sid是test
REMOTE_LOGIN_PASSWORDFILE
SQLNET.AUTHENTICATION_SERVICES
用户类型
登陆结果
none
none
方式一
无法登录
方式二
无法登录
方式三
无法登录
方式四
无法登录
方式五
无法登录
none
nts(all)
方式一
能登录
方式二
能登录
方式三
能登录(window)
能登录(linux置空)
不能登录(linux设all)
方式四
无法登录
方式五
无法登录
exclusive
none
方式一
无法登录
方式二
能登录
方式三
能登录
方式四
能登录
方式五
能登录
exclusive
nts(all)
方式一
能登录
方式二
能登录
方式三
能登录(window)
能登录(linux置空)
不能登录(linux设all, 但是远程用密码文件又可以)
方式四
能登录
方式五
能登录
1 常见情况举例
1.1 关闭OS验证
SQLNET.AUTHENTICATION_SERVICES=(NONE)
1.2 关闭密码文件认证
REMOTE_LOGIN_PASSWORDFILE=(NONE)
1.3 关闭本地密码文件认证
REMOTE_LOGIN_PASSWORDFILE=(EXCLUSIVE)
SQLNET.AUTHENTICATION_SERVICES=(ALL)
1.4 关闭远程密码文件认证
REMOTE_LOGIN_PASSWORDFILE=(NONE)