Oracle中password file orapwd的作用及说明
Oracle中password file orapwd的作用及说明在数据库没有启动之前,数据库内建用户是无法通过数据库来验证身份的口令文件中存放sysdba/sysoper用户的用户名及口令允许用户通过口令文件验证,在数据库未启动之前登陆从而启动数据库如果没有口令文件,在数据库未启动之前就只能通过操作系统认证.使用Rman,很多时候需要在nomount,mount等状态对数据库进行处理所以通常要求sysdba权限如果属于本地DBA组,可以通过操作系统认证登陆如果是远程sysdba登陆,需要通过passwordfile认证.1.remote_login_passwordfile = NONE此时停用口令文件验证,Oracle数据库不允许远程SYSDBA/SYSOPER身份登录无法通过远程进行数据库起停等操作管理local:[oracle@jumper oracle]$ sqlplus "/ as sysdba"SQL*Plus: Release 9.2.0.3.0 - Production on Thu Apr 15 09:58:45 2004Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.Connected to:Oracle9i Enterprise Edition Release 9.2.0.3.0 - ProductionWith the Partitioning, OLAP and Oracle Data Mining optionsJServer Release 9.2.0.3.0 - ProductionSQL> alter user sys identified by oracle;User altered.SQL> show parameter passNAME TYPE VALUE--------------------- ----------- ------------------------------remote_login_passwordfile string NONEremote:E:\Oracle\ora92\bin>sqlplus /nologSQL*Plus: Release 9.2.0.4.0 -Production on 星期四 4月 15 09:39:22 2004Copyright (c) 1982, 2002, OracleCorporation. All rights reserved.SQL> connect sys/oracle@hsjf assysdbaERROR:ORA-01017: invalid username/password; logon denied此处实际上是无法通过口令文件验证2.remote_login_passwordfile = exclusiveSQL> alter system set remote_login_passwordfile=exclusive scope=spfile;System altered.SQL> startup force;ORACLE instance started.Total System Global Area 131142648 bytesFixed Size 451576 bytesVariable Size 104857600 bytesDatabase Buffers 25165824 bytesRedo Buffers 667648 bytesDatabase mounted.Database opened.SQL> show parameter passNAME TYPE VALUE------------------------------------ ----------- ------------------------------remote_login_passwordfile string EXCLUSIVESQL> alter user sys identified by oracle;User altered.remote:E:\Oracle\ora92\bin>sqlplus /nologSQL*Plus: Release 9.2.0.4.0 -Production on 星期四 4月 15 09:47:11 2004Copyright (c) 1982, 2002, OracleCorporation. All rights reserved.SQL> connect sys/oracle@hsjf assysdba已连接。SQL> show userUSER 为"SYS"SQL>这实际上就是通过口令文件验证登录的3.进一步测试如果此时我们删除passwdfile,sysdba/sysoper将无法认证,也就无法登陆数据库Server:SQL> ![oracle@jumper oracle]$ cd $ORACLE_HOME/dbs[oracle@jumper dbs]$ ls orapwhsjforapwhsjf[oracle@jumper dbs]$ mv orapwhsjf orapwhsjf.bak[oracle@jumper dbs]$Remote:E:\Oracle\ora92\bin>sqlplus /nologSQL*Plus: Release 9.2.0.4.0 - Production on 星期四 4月 15 09:50:14 2004Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.SQL> connect sys/oracle@hsjf as sysdbaERROR:ORA-01031: insufficient privilegesSQL>这实际上就是无法通过口令文件验证身份4.如果丢失了passwdfile如果使用passwdfile却意外丢失,此时将不能启动数据库SQL> startup force;ORACLE instance started.Total System Global Area 131142648 bytesFixed Size 451576 bytesVariable Size 104857600 bytesDatabase Buffers 25165824 bytesRedo Buffers 667648 bytesORA-01990: error opening password file '/opt/oracle/product/9.2.0/dbs/orapw'ORA-27037: unable to obtain file statusLinux Error: 2: No such file or directoryAdditional information: 3此时可以通过orapwd重建口令文件来解决此处我们恢复口令文件既可SQL> ![oracle@jumper oracle]$ mv $ORACLE_HOME/dbs/orapwhsjf.bak orapwhsjf[oracle@jumper oracle]$ exitexitSQL> alter database open;Database altered.SQL>大致就是如此.5. remote_login_passwordfile = shared我们看一下Oracle9i文档中的说明:SHAREDMore than one database can use a password file. However, the only user recognized by the password file is SYS.意思是说多个数据库可以共享一个口令文件,但是只可以识别一个用户:SYSSQL> select * from v$pwfile_users;USERNAME SYSDB SYSOP------------------------------ ----- -----SYS TRUE TRUESQL> grant sysdba to eygle;grant sysdba to eygle*ERROR at line 1:ORA-01994: GRANT failed: cannot add users to public password fileSQL> show parameter passwordNAME TYPE VALUE------------------------------------ ----------- ------------------------------remote_login_passwordfile string SHARED我们看到,此时的口令文件中是不能添加用户的.很多人的疑问在于:口令文件的缺省名称是orapw<sid>,怎么能够共享?实际上是这样的: Oracle数据库在启动时,首先查找的是orapw<sid>的口令文件,如果该文件不存在,则开始查找,orapw的口令文件如果口令文件命名为orapw,多个数据库就可以共享.我们看一下测试:[oracle@jumper dbs]$ sqlplus "/ as sysdba"SQL*Plus: Release 9.2.0.3.0 - Production on Tue Jul 6 09:40:34 2004Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.Connected to:Oracle9i Enterprise Edition Release 9.2.0.3.0 - ProductionWith the Partitioning, OLAP and Oracle Data Mining opt上一个:通过GC创建dataguard备库失败一则
下一个:【Oracle】-【权限-ORA-04043】- ORA-04043: object "SYS"."V_$DATABASE" does not exist解决
- 更多Oracle疑问解答:
- 运行exp备份oracle数据库提示oracle-12154错误
- 有没有,生产Oracle Rman 备份脚本的工具啊!
- 初学orcle,希望有大大帮忙解说一下详细步骤,从登录oracle到创建表的过程
- oracle语句问题:一张user表,三个字段,id,name,time,插入记录比如:张三2007,李四2008,张三2011
- 如何写一个ORACLE触发器同步两个表中的数据?
- oracle 如何查看一个服务器上有多少个数据库.
- oracle 创建包的时候错误 求解
- oracle 重复列的问题
- oracle 中如何查处2星期前的数据
- 请教oracle数据库安装中的问题
- 请问谁能提供给我标准的oracle ERP的数据库表结构并详细说明各表主要的作用?
- 安装oracle遇到的问题 invalid entry CRC (expected 0x3e12e795 but got 0x9db0e9fd)
- 我的是ORACLE 10G,在RMAN中如何按指定的时间恢复数据文件啊?
- oracle为什么没有自动增长列
- oracle快捷键都有哪些啊?