分析REMOTE

    技术2025-05-17  45

    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

    sidtest

    REMOTE_LOGIN_PASSWORDFILE

    SQLNET.AUTHENTICATION_SERVICES

    用户类型

    登陆结果

    none

    none

    方式一

    无法登录

    方式二

    无法登录

    方式三

    无法登录

    方式四

    无法登录

    方式五

    无法登录

    none

    nts(all)

    方式一

    能登录

    方式二

    能登录

    方式三

    能登录(window)

    能登录(linux置空)

    不能登录(linuxall)

    方式四

    无法登录

    方式五

    无法登录

    exclusive

    none

    方式一

    无法登录

    方式二

    能登录

    方式三

    能登录

    方式四

    能登录

    方式五

    能登录

    exclusive

    nts(all)

    方式一

    能登录

    方式二

    能登录

    方式三

    能登录(window)

    能登录(linux置空)

    不能登录(linuxall, 但是远程用密码文件又可以)

    方式四

    能登录

    方式五

    能登录

     

    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)

    最新回复(0)