千家信息网

怎么理解Oracl中的Remote_login_passwordfile参数

发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,本篇内容主要讲解"怎么理解Oracl中的Remote_login_passwordfile参数",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么理解Ora
千家信息网最后更新 2024年09月22日怎么理解Oracl中的Remote_login_passwordfile参数

本篇内容主要讲解"怎么理解Oracl中的Remote_login_passwordfile参数",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么理解Oracl中的Remote_login_passwordfile参数"吧!

 口令文件用于具有sysdba身份的用户执行远程登录数据库,Oracle允许用户通过口令文件验证,在数据库未启动之前登录,从而启动实例,加载打开数据库;Oracle通过一个初始化参数remote_login_passwordfile限制口令文件的使用,通过配置该参数可以控制是否在多个数据之间共享密码文件,也可以通过这个参数禁用口令文件验证,remote_login_passwordfile的值:

==> NONE:禁用口令文件验证。

1.设置成none将直接禁用口令文件验证,sysdba用户只能通过操作系统认证登录数据库。此时的登录将会收到报错:

ORA-01017: invalid username/password; logon denied

2.操作系统认证方式涉及sqlnet.ora 文件中的SQLNET.AUTHENTICATION_SERVICES参数值:

  1)NONE :关闭操作系统认证,只能通过口令文件认证

  2)ALL:linux/unix平台下,采用操作系统认证,但远程sysdba登录还需使用口令文件认证。

  3)NTS:windows平台下操作系统认证

==> EXCLUSIVE:(默认值)独占模式使用密码文件,官档中提到了"only one instance of one database"使用exclusive方式,在数据库中是可以执行对于sysdba用户的增加,修改,删除动作的,同样也可以修改sysdba用户的密码,这些更改会记录到密码文件中去。

1.查看被授予sysdba权限的用户

SELECT USERNAME FROM V$PWFILE_USERS WHERE SYSDBA='TRUE';

2.口令文件中添加/删除sysdba权限用户

REVOKE SYSDBA FROM non-SYS-user;GRANT SYSDBA TO non-SYS-user;

==> SHARED:在多个数据库间共享口令文件。

1.配置shared值的口令文件可以被一台服务器上的多个数据库或者RAC集群数据库共享;(现在知道exclusive模式时说的"only one instance of one database"的含义了吧,就是为了区分RAC环境)

2.shared下的密码文件不可被修改,这就意味着无法再授权sysdba权限给非sys用户了,修改sysdba权限用户的密码也不被允许,包括sys用户的密码。

SQL> show parameter password

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

remote_login_passwordfile string SHARED

SQL> grant sysdba to hr;

grant sysdba to hr

*

ERROR at line 1:

ORA-01999: password file cannot be updated in SHARED mode

SYS@db11g>alter user sys identified by netpwd ;

alter user sys identified by netpwd

*

ERROR at line 1:

ORA-28046: Password change for SYS disallowed

3.oracle建议首先将需要sysdba权限的用户在exclusive模式下设置好在将REMOTE_LOGIN_PASSWORDFILE 修改为shared共享口令文件。

4.Oracle寻找口令文件的顺序:orapw$ORACLE_SID --> orapw --> Failure

【示例】Exclusive转变为shared:

1.修改口令文件名

$ mv orapwdb11g orapw

2.修改数据库remote_login_passwordfile值

SQL> alter system set remote_login_passwordfile=shared scope=spfile;

3.重启数据库生效

SQL> shutdown immediate;SQL> startup;

备注:如果将none的口令文件转换为exclusive或shared,要保证口令文件中的sys密码设置和数据库中数据字典中记载的一致。

到此,相信大家对"怎么理解Oracl中的Remote_login_passwordfile参数"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

0