初始化参数REMOTE_LOGIN_PASSWORDFILE设置Oracle数据库的密码验证方式是什么-成都快上网建站

初始化参数REMOTE_LOGIN_PASSWORDFILE设置Oracle数据库的密码验证方式是什么

本篇文章为大家展示了初始化参数REMOTE_LOGIN_PASSWORDFILE设置Oracle数据库的密码验证方式是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

创新互联公司2013年成立,是专业互联网技术服务公司,拥有项目网站设计、做网站网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元昭阳做网站,已为上家服务,为昭阳各地企业和个人服务,联系电话:18982081108

初始化参数REMOTE_LOGIN_PASSWORDFILE设置Oracle数据库的密码验证方式。

 

这个参数最常见的设置为EXCLUSIVE,这也是数据库的默认设置:

bash-3.00$ ls -l orapwtest1
-rw-r-----   1 oracle   oinstall    1536 Apr 14 14:12 orapwtest1
bash-3.00$ export ORACLE_SID=test1
bash-3.00$ sqlplus "/ as sysdba"

SQL*Plus: Release 11.1.0.6.0 - Production on星期四 4月 16 17:23:32 2009

Copyright (c) 1982, 2007, Oracle.  All rights reserved.


连接到:
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options

SQL> show parameter remote_login

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
remote_login_passwordfile            string      EXCLUSIVE
SQL> grant sysdba to test;

授权成功。

SQL> host
$ cd $ORACLE_HOME/dbs
$ ls -l orapwtest1
-rw-r-----   1 oracle   oinstall    1536 Apr 16 17:24 orapwtest1
$ strings orapwtest1
Z[\]
ORACLE Remote Password file
INTERNAL
8D7F004CD7D32C58
D3CE9AB10E42F19D
TEST
7A0F2B316C212D67

如果将REMOTE_LOGIN_PASSWORDFILE设置为NONE,则禁止密码文件验证方式,添加SYSDBA权限的时候系统会报错:

$ exit

SQL> conn test/test@test1 as sysdba
已连接。
SQL> alter system set remote_login_passwordfile = none scope = spfile sid = 'test1';

系统已更改。

SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE例程已经关闭。
SQL> conn test/test@test1 as sysdba
ERROR:
ORA-12514: TNS:监听程序当前无法识别连接描述符中请求的服务


SQL> conn / as sysdba
已连接到空闲例程。
SQL> startup
ORACLE例程已经启动。

Total System Global Area  776896512 bytes
Fixed Size                  2098776 bytes
Variable Size             212523432 bytes
Database Buffers          557842432 bytes
Redo Buffers                4431872 bytes
数据库装载完毕。
数据库已经打开。
SQL> grant sysoper to test;
grant sysoper to test
*
第 1行出现错误:
ORA-01994: GRANT失败:口令文件缺失或已禁用


SQL> show parameter remote_login

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
remote_login_passwordfile            string      NONE

可以看到将REMOTE_LOGIN_PASSWORDFILE设置为NONE,尝试使用密码文件验证方式登陆会失败,且授权或回收SYSDBA、SYSOPER权限会失败。

如果将REMOTE_LOGIN_PASSWORDFILE设置为SHARED,则任何使用这个密码文件的数据库都不能进行授权回收SYSDBA、SYSOPER权限的操作,但是这些数据库可以使用这个密码文件来进行验证。

这种方式一般用于管理RAC数据库,或者同一台服务器上的多个不同数据库实例。

下面看一下将REMOTE_LOGIN_PASSWORDFILE设置为SHARED的情况:

SQL> alter system set remote_login_passwordfile = shared scope = spfile sid = 'test1';

系统已更改。

SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE例程已经关闭。
SQL> conn / as sysdba
已连接到空闲例程。
SQL> startup
ORACLE例程已经启动。

Total System Global Area  776896512 bytes
Fixed Size                  2098776 bytes
Variable Size             212523432 bytes
Database Buffers          557842432 bytes
Redo Buffers                4431872 bytes
数据库装载完毕。
数据库已经打开。
SQL> conn test/test@test1 as sysdba
已连接。
SQL> grant sysoper to test;
grant sysoper to test
*
第 1行出现错误:
ORA-01999:口令文件不能在 SHARED模式下更新


SQL> show parameter remote_login

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
remote_login_passwordfile            string      SHARED
SQL> exit
从 Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options断开
bash-3.00$ mv orapwractest1 orapwractest1.bak
bash-3.00$ ln orapwtest1 orapwractest1    
bash-3.00$ ls -l orapwractest1
-rw-r-----   2 oracle   oinstall    1536 Apr 16 17:24 orapwractest1
bash-3.00$ export ORACLE_SID=ractest1
bash-3.00$ sqlplus "/ as sysdba"

SQL*Plus: Release 11.1.0.6.0 - Production on星期四 4月 16 18:07:35 2009

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

已连接到空闲例程。

SQL> startup
ORACLE例程已经启动。

Total System Global Area 1603887104 bytes
Fixed Size                  2095208 bytes
Variable Size             741722008 bytes
Database Buffers          855638016 bytes
Redo Buffers                4431872 bytes
数据库装载完毕。
数据库已经打开。
SQL> conn test/test@ractest1 as sysdba
已连接。
SQL> grant sysoper to test1;
grant sysoper to test1
                 *
第 1行出现错误:
ORA-01917:用户或角色 'TEST1'不存在


SQL> grant sysoper to test;

授权成功。

SQL> conn test/test@test1 as sysoper
已连接。

可以看到使用SHARED方式启动的数据库,可以利用密码文件进行验证,但是不能授权或回收SYSDBA和SYSOPER权限。

随后,启动另一个数据库,且将这个数据库的密码文件指向刚才test数据库所使用的密码文件,这样两个数据库就共享了同一个密码文件了。

不过对于TEST数据库,采用了SHARED方式,因此不能执行SYSDBA和SYSOPER的授权,而对于RACTEST数据库,采用了默认的REMOTE_LOGIN_PASSWORDFILE设置,因此可以对这个密码文件进行修改,而这个修改在另外的数据库中,可以马上生效。

如果将RACTEST数据库也设置为SHARED方式启动,那么没有数据库可以修改这个密码文件了。

 

上述内容就是初始化参数REMOTE_LOGIN_PASSWORDFILE设置Oracle数据库的密码验证方式是什么,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。


当前名称:初始化参数REMOTE_LOGIN_PASSWORDFILE设置Oracle数据库的密码验证方式是什么
分享网址:http://kswjz.com/article/ppcsji.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流