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)