<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>别忘了</title><link>http://swordhand.cndev.org/category/284.aspx</link><description>别忘了</description><managingEditor>茗_人</managingEditor><dc:language>zh-CHS</dc:language><generator>.Text Version 0.95.2004.101</generator><item><dc:creator>茗_人</dc:creator><title>好不容易找到先记下来,有空试试,可能可以实现拒绝oracle的dba远程登录</title><link>http://swordhand.cndev.org/archive/2004/08/10/2452.aspx</link><pubDate>2004-08-10 22:34:00Z</pubDate><guid>http://swordhand.cndev.org/archive/2004/08/10/2452.aspx</guid><wfw:comment>http://swordhand.cndev.org/comments/2452.aspx</wfw:comment><comments>http://swordhand.cndev.org/archive/2004/08/10/2452.aspx#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://swordhand.cndev.org/comments/commentRss/2452.aspx</wfw:commentRss><trackback:ping>http://swordhand.cndev.org/services/trackbacks/2452.aspx</trackback:ping><description>&lt;H1 class=block_title&gt;&lt;A id=viewpost.ascx_TitleUrl href="http://blog.csdn.net/eygle/archive/2004/07/06/35331.aspx"&gt;Oracle中password file的作用及说明&lt;/A&gt;&lt;/H1&gt;
&lt;DIV class=post&gt;
&lt;DIV class=postcontent&gt;
&lt;P&gt;&lt;SPAN class=style23&gt;&lt;FONT face=Verdana size=2&gt;在数据库没有启动之前，数据库内建用户是无法通过数据库来验证身份的&lt;BR&gt;&lt;BR&gt;口令文件中存放sysdba/sysoper用户的用户名及口令&lt;BR&gt;允许用户通过口令文件验证，在数据库未启动之前登陆&lt;BR&gt;从而启动数据库&lt;BR&gt;&lt;BR&gt;如果没有口令文件，在数据库未启动之前就只能通过操作系统认证.&lt;BR&gt;&lt;BR&gt;使用Rman，很多时候需要在nomount,mount等状态对数据库进行处理&lt;BR&gt;所以通常要求sysdba权限如果属于本地DBA组，可以通过操作系统认证登陆&lt;BR&gt;如果是远程sysdba登陆，需要通过passwordfile认证.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;&lt;SPAN class=style23&gt;1.remote_login_passwordfile = NONE&lt;BR&gt;&lt;BR&gt;此时停用口令文件验证，Oracle数据库不允许远程SYSDBA/SYSOPER身份登录&lt;BR&gt;无法通过远程进行数据库起停等操作管理&lt;/SPAN&gt;&lt;SPAN class=style28&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;&lt;FONT color=blue&gt;local:&lt;/FONT&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 bgColor=#999999&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class=style22 vAlign=top width=646&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;FONT size=2&gt;[oracle@jumper oracle]$ sqlplus "/ as sysdba" SQL*Plus: Release 9.2.0.3.0 - Production on Thu Apr 15 09:58:45 2004 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. Connected to: Oracle9i Enterprise Edition Release 9.2.0.3.0 - Production With the Partitioning, OLAP and Oracle Data Mining options JServer Release 9.2.0.3.0 - Production SQL&amp;gt; alter user sys identified by oracle; User altered. SQL&amp;gt; show parameter pass NAME TYPE VALUE --------------------- ----------- ------------------------------ remote_login_passwordfile string NONE &lt;/FONT&gt;&lt;/PRE&gt;&lt;/BLOCKQUOTE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P class=style23&gt;&lt;FONT face="verdana, arial, helvetica"&gt;&lt;FONT size=2&gt;&lt;FONT color=blue&gt;remote:&lt;/FONT&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 bgColor=#999999&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class=style23 vAlign=top width=646&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;FONT size=2&gt;&lt;SPAN class=style23&gt;&lt;FONT face=Verdana&gt;E:\Oracle\ora92\bin&amp;gt;sqlplus /nolog&lt;BR&gt;&lt;BR&gt;SQL*Plus: Release 9.2.0.4.0 - Production on 星期四 4月 15 09:39:22 2004&lt;BR&gt;&lt;BR&gt;Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.&lt;BR&gt;&lt;BR&gt;SQL&amp;gt; connect sys/oracle@hsjf as sysdba&lt;BR&gt;ERROR:&lt;BR&gt;&lt;FONT color=red&gt;ORA-01017: invalid username/password; logon denied&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/PRE&gt;&lt;/BLOCKQUOTE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P class=style23&gt;&lt;FONT size=2&gt;此处实际上是无法通过口令文件验证&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=style23&gt;&lt;FONT face="verdana, arial, helvetica" size=2&gt;2.remote_login_passwordfile = exclusive&lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=style23&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 bgColor=#999999&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class=style22 vAlign=top width=568&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;FONT size=2&gt;SQL&amp;gt; alter system set remote_login_passwordfile=exclusive scope=spfile; System altered. SQL&amp;gt; startup force; ORACLE instance started. Total System Global Area 131142648 bytes Fixed Size 451576 bytes Variable Size 104857600 bytes Database Buffers 25165824 bytes Redo Buffers 667648 bytes Database mounted. Database opened. SQL&amp;gt; show parameter pass NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ remote_login_passwordfile string EXCLUSIVE SQL&amp;gt; alter user sys identified by oracle; User altered. &lt;/FONT&gt;&lt;/PRE&gt;&lt;/BLOCKQUOTE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;&lt;FONT face="verdana, arial, helvetica"&gt;&lt;FONT size=2&gt;&lt;FONT color=blue&gt;remote:&lt;/FONT&gt; &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 bgColor=#999999&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class=style23 vAlign=top width=568&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;FONT face="verdana, arial, helvetica" size=2&gt;E:\Oracle\ora92\bin&amp;gt;sqlplus /nolog&lt;BR&gt;&lt;BR&gt;SQL*Plus: Release 9.2.0.4.0 - Production on 星期四 4月 15 09:47:11 2004&lt;BR&gt;&lt;BR&gt;Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.&lt;BR&gt;&lt;BR&gt;SQL&amp;gt; connect sys/oracle@hsjf as sysdba&lt;BR&gt;已连接。&lt;BR&gt;SQL&amp;gt; show user&lt;BR&gt;USER 为"SYS"&lt;BR&gt;SQL&amp;gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/PRE&gt;&lt;/BLOCKQUOTE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P class=style23&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=style23&gt;&lt;FONT size=2&gt;这实际上就是通过口令文件验证登录的 &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="verdana, arial, helvetica" size=2&gt;3.进一步测试&lt;BR&gt;&lt;BR&gt;如果此时我们删除passwdfile,sysdba/sysoper将无法认证，也就无法登陆数据库&lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="verdana, arial, helvetica"&gt;&lt;FONT size=2&gt;&lt;FONT color=blue&gt;Server:&lt;/FONT&gt; &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 bgColor=#999999&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class=style23 vAlign=top width=568&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT face="verdana, arial, helvetica" size=2&gt;SQL&amp;gt; !&lt;BR&gt;[oracle@jumper oracle]$ cd $ORACLE_HOME/dbs&lt;BR&gt;[oracle@jumper dbs]$ ls orapwhsjf&lt;BR&gt;orapwhsjf&lt;BR&gt;[oracle@jumper dbs]$ mv orapwhsjf orapwhsjf.bak&lt;BR&gt;[oracle@jumper dbs]$ &lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="verdana, arial, helvetica"&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;&lt;FONT face="verdana, arial, helvetica"&gt;&lt;BR&gt;&lt;BR&gt;&lt;FONT size=2&gt;&lt;FONT color=blue&gt;Remote:&lt;/FONT&gt; &lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 bgColor=#999999&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class=style23 vAlign=top width=568&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT face="verdana, arial, helvetica" size=2&gt;E:\Oracle\ora92\bin&amp;gt;sqlplus /nolog&lt;BR&gt;&lt;BR&gt;SQL*Plus: Release 9.2.0.4.0 - Production on 星期四 4月 15 09:50:14 2004&lt;BR&gt;&lt;BR&gt;Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.&lt;BR&gt;&lt;BR&gt;SQL&amp;gt; connect sys/oracle@hsjf as sysdba&lt;BR&gt;ERROR:&lt;BR&gt;&lt;FONT color=red&gt;ORA-01031: insufficient privileges&lt;/FONT&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;SQL&amp;gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="verdana, arial, helvetica"&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;&lt;FONT face="verdana, arial, helvetica"&gt;&lt;BR&gt;&lt;BR&gt;&lt;FONT size=2&gt;这实际上就是无法通过口令文件验证身份&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="verdana, arial, helvetica" size=2&gt;4.如果丢失了passwdfile&lt;BR&gt;&lt;BR&gt;如果使用passwdfile却意外丢失，此时将不能启动数据库&lt;/FONT&gt;&lt;/P&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 bgColor=#999999&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class=style23 vAlign=top width=596&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT face="verdana, arial, helvetica"&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="verdana, arial, helvetica"&gt;&lt;BR&gt;&lt;FONT size=2&gt;SQL&amp;gt; startup force;&lt;BR&gt;ORACLE instance started.&lt;BR&gt;&lt;BR&gt;Total System Global Area 131142648 bytes&lt;BR&gt;Fixed Size 451576 bytes&lt;BR&gt;Variable Size 104857600 bytes&lt;BR&gt;Database Buffers 25165824 bytes&lt;BR&gt;Redo Buffers 667648 bytes&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=red size=2&gt;ORA-01990: error opening password file '/opt/oracle/product/9.2.0/dbs/orapw'&lt;BR&gt;ORA-27037: unable to obtain file status&lt;BR&gt;Linux Error: 2: No such file or directory&lt;BR&gt;Additional information: 3&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="verdana, arial, helvetica"&gt;&lt;BR&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;&lt;FONT face="verdana, arial, helvetica"&gt;&lt;BR&gt;&lt;BR&gt;&lt;FONT size=2&gt;此时可以通过orapwd重建口令文件来解决&lt;BR&gt;此处我们恢复口令文件既可&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 bgColor=#999999&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class=style23 vAlign=top width=596&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT face="verdana, arial, helvetica" size=2&gt;SQL&amp;gt; !&lt;BR&gt;[oracle@jumper oracle]$ mv $ORACLE_HOME/dbs/orapwhsjf.bak orapwhsjf&lt;BR&gt;[oracle@jumper oracle]$ exit&lt;BR&gt;exit&lt;BR&gt;&lt;BR&gt;SQL&amp;gt; alter database open;&lt;BR&gt;&lt;BR&gt;Database altered.&lt;BR&gt;&lt;BR&gt;SQL&amp;gt; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="verdana, arial, helvetica"&gt;&lt;BR&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;&lt;FONT face="verdana, arial, helvetica"&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;FONT size=2&gt;大致就是如此.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="verdana, arial, helvetica" size=2&gt;5. remote_login_passwordfile = shared&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="verdana, arial, helvetica" size=2&gt;我们看一下Oracle9i文档中的说明:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=style29&gt;&lt;FONT size=2&gt;SHARED &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;&lt;SPAN class=style29&gt;More than one database can use a password file. However, the only user recognized by the password file is SYS.&lt;/SPAN&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=style23&gt;&lt;FONT size=2&gt;意思是说多个数据库可以共享一个口令文件,但是只可以识别一个用户:SYS&lt;/FONT&gt;&lt;/P&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 bgColor=#999999&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class=style23 vAlign=top width=596&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT size=2&gt;SQL&amp;gt; select * from v$pwfile_users;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;USERNAME SYSDB SYSOP&lt;BR&gt;------------------------------ ----- -----&lt;BR&gt;SYS TRUE TRUE&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;SQL&amp;gt; grant sysdba to eygle;&lt;BR&gt;grant sysdba to eygle&lt;BR&gt;*&lt;BR&gt;ERROR at line 1:&lt;BR&gt;&lt;SPAN class=style31&gt;&lt;FONT color=#ff0000&gt;ORA-01994: &lt;/FONT&gt;&lt;/SPAN&gt;GRANT failed: cannot add users to public password file&lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;SQL&amp;gt; show parameter password&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;NAME TYPE VALUE&lt;BR&gt;------------------------------------ ----------- ------------------------------&lt;BR&gt;remote_login_passwordfile string SHARED&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="verdana, arial, helvetica"&gt;&lt;BR&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P class=style23&gt;&lt;FONT size=2&gt;我们看到,此时的口令文件中是不能添加用户的.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=style23&gt;&lt;FONT size=2&gt;很多人的疑问在于:口令文件的缺省名称是orapw&lt;SID&gt;,怎么能够共享? &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=style23&gt;&lt;FONT size=2&gt;实际上是这样的: Oracle数据库在启动时,首先查找的是orapw&lt;SID&gt;的口令文件,如果该文件不存在,则开始查找,orapw的口令文件&lt;BR&gt;如果口令文件命名为orapw,多个数据库就可以共享.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=style23&gt;&lt;FONT size=2&gt;我们看一下测试:&lt;/FONT&gt;&lt;/P&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 bgColor=#999999&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class=style23 vAlign=top width=596&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;PRE&gt;&lt;FONT size=2&gt;[oracle@jumper dbs]$ sqlplus "/ as sysdba" SQL*Plus: Release 9.2.0.3.0 - Production on Tue Jul 6 09:40:34 2004 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. Connected to: Oracle9i Enterprise Edition Release 9.2.0.3.0 - Production With the Partitioning, OLAP and Oracle Data Mining options JServer Release 9.2.0.3.0 - Production SQL&amp;gt; shutdown immediate Database closed. Database dismounted. ORACLE instance shut down. SQL&amp;gt; ! [oracle@jumper dbs]$ ls hsjf initdw.ora inithsjf.ora init.ora lkHSJF orapwhsjf spfilehsjf.ora [oracle@jumper dbs]$ &lt;SPAN class=style30&gt;&lt;FONT color=#0000ff&gt;mv orapwhsjf orapwhsjf.bak&lt;/FONT&gt;&lt;/SPAN&gt; [oracle@jumper dbs]$ exit exit SQL&amp;gt; startup ORACLE instance started. Total System Global Area 235999908 bytes Fixed Size 451236 bytes Variable Size 201326592 bytes Database Buffers 33554432 bytes Redo Buffers 667648 bytes ORA-01990: error opening password file '&lt;SPAN class=style30&gt;&lt;FONT color=#0000ff&gt;/opt/oracle/product/9.2.0/dbs/orapw&lt;/FONT&gt;&lt;/SPAN&gt;'--这是最后查找的文件 ORA-27037: unable to obtain file status Linux Error: 2: No such file or directory Additional information: 3 &lt;/FONT&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;FONT face="verdana, arial, helvetica"&gt;&lt;BR&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P class=style23&gt;&lt;FONT size=2&gt;我们建立orapw口令文件,这时候可以打开数据库.&lt;/FONT&gt;&lt;/P&gt;
&lt;TABLE width=679 bgColor=#999999 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width=673 height=123&gt;
&lt;BLOCKQUOTE&gt;&lt;PRE class=style23&gt;&lt;FONT size=2&gt;SQL&amp;gt; ! [oracle@jumper dbs]$ ls hsjf initdw.ora inithsjf.ora init.ora lkHSJF orapwhsjf.bak spfilehsjf.ora [oracle@jumper dbs]$ cp orapwhsjf.bak orapw [oracle@jumper dbs]$ exit exit SQL&amp;gt; alter database open; Database altered. SQL&amp;gt; show parameter passw NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ remote_login_passwordfile string SHARED SQL&amp;gt; &lt;/FONT&gt;&lt;/PRE&gt;
&lt;P class=style23&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P class=style23&gt;&lt;FONT size=2&gt;那么你可能会有这样的疑问,多个Exclusive的数据库是否可以共享一个口令文件(orapw)呢?&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=style23&gt;&lt;FONT size=2&gt;我们继续这个实验:&lt;/FONT&gt;&lt;/P&gt;
&lt;TABLE width=679 bgColor=#999999 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width=673 height=123&gt;
&lt;BLOCKQUOTE&gt;&lt;PRE class=style23&gt;&lt;FONT size=2&gt;SQL&amp;gt; show parameter password&lt;/FONT&gt;&lt;/PRE&gt;
&lt;P class=style23&gt;&lt;FONT size=2&gt;NAME TYPE VALUE&lt;BR&gt;------------------------------------ ----------- ------------------------------&lt;BR&gt;remote_login_passwordfile string SHARED&lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=style23&gt;&lt;FONT size=2&gt;[oracle@jumper dbs]$ strings orapw&lt;BR&gt;]\[Z&lt;BR&gt;ORACLE Remote Password file&lt;BR&gt;INTERNAL&lt;BR&gt;AB27B53EDC5FEF41&lt;BR&gt;8A8F025737A9097A&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P class=style23&gt;&lt;FONT color=#000000&gt;&lt;FONT face="verdana, arial, helvetica" size=2&gt;注意这里仅记录着INTERNAL/SYS的口令&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=style23&gt;&lt;FONT face="verdana, arial, helvetica" size=2&gt;REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE 时&lt;/FONT&gt;&lt;/P&gt;
&lt;TABLE width=679 bgColor=#999999 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width=673 height=123&gt;
&lt;BLOCKQUOTE&gt;&lt;PRE class=style23&gt;&lt;FONT size=2&gt;SQL&amp;gt; alter system set remote_login_passwordfile=exclusive scope=spfile;&lt;/FONT&gt;&lt;/PRE&gt;
&lt;P class=style23&gt;&lt;FONT size=2&gt;System altered.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=style23&gt;&lt;FONT size=2&gt;SQL&amp;gt; startup force;&lt;BR&gt;ORACLE instance started.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=style23&gt;&lt;FONT size=2&gt;Total System Global Area 235999908 bytes&lt;BR&gt;Fixed Size 451236 bytes&lt;BR&gt;Variable Size 201326592 bytes&lt;BR&gt;Database Buffers 33554432 bytes&lt;BR&gt;Redo Buffers 667648 bytes&lt;BR&gt;Database mounted.&lt;BR&gt;Database opened.&lt;BR&gt;SQL&amp;gt; !&lt;BR&gt;&lt;BR&gt;[oracle@jumper bin]$ cd $ORACLE_HOME/dbs&lt;BR&gt;[oracle@jumper dbs]$ strings orapw&lt;BR&gt;]\[Z&lt;BR&gt;ORACLE Remote Password file&lt;BR&gt;HSJF&lt;BR&gt;INTERNAL&lt;BR&gt;AB27B53EDC5FEF41&lt;BR&gt;8A8F025737A9097A&lt;BR&gt;[oracle@jumper dbs]$ exit&lt;BR&gt;exit&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P class=style23&gt;&lt;FONT color=#000000&gt;&lt;FONT face="verdana, arial, helvetica" size=2&gt;注意这里,以EXCLUSIVE 方式启动以后,实例信息已经被写入口令文件,这个文件此时不可以被共享了&lt;BR&gt;当然如果被单个数据库使用是没有问题的.&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;TABLE width=679 bgColor=#999999 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width=673 height=123&gt;
&lt;BLOCKQUOTE&gt;&lt;PRE class=style23&gt;&lt;FONT size=2&gt;SQL&amp;gt; select * from v$pwfile_users;&lt;/FONT&gt;&lt;/PRE&gt;
&lt;P class=style23&gt;&lt;FONT size=2&gt;USERNAME SYSDB SYSOP&lt;BR&gt;------------------------------ ----- -----&lt;BR&gt;SYS TRUE TRUE&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=style23&gt;&lt;FONT size=2&gt;SQL&amp;gt; grant sysdba to eygle;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=style23&gt;&lt;FONT size=2&gt;Grant succeeded.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=style23&gt;&lt;FONT size=2&gt;SQL&amp;gt; select * from v$pwfile_users;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=style23&gt;&lt;FONT size=2&gt;USERNAME SYSDB SYSOP&lt;BR&gt;------------------------------ ----- -----&lt;BR&gt;SYS TRUE TRUE&lt;BR&gt;EYGLE TRUE FALSE&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=style23&gt;&lt;FONT size=2&gt;SQL&amp;gt; !&lt;BR&gt;[oracle@jumper bin]$ cd $ORACLE_HOME/dbs&lt;BR&gt;[oracle@jumper dbs]$ strings orapw&lt;BR&gt;]\[Z&lt;BR&gt;ORACLE Remote Password file&lt;BR&gt;HSJF&lt;BR&gt;INTERNAL&lt;BR&gt;AB27B53EDC5FEF41&lt;BR&gt;8A8F025737A9097A&lt;BR&gt;&amp;gt;EYGLE&lt;BR&gt;B726E09FE21F8E83&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P class=style23&gt;&lt;BR&gt;&lt;FONT size=2&gt;注意此时可以增加SYSDBA用户，并且这些信息可以被写入到口令文件.&lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=style23&gt;&lt;FONT size=2&gt;实际上，口令文件对于其他用户来说就是启到了一个 sudo 的作用.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="verdana, arial, helvetica" size=2&gt;6.重建口令文件&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class=style26&gt;&lt;FONT face=Verdana size=2&gt;如果口令文件丢失,可以使用orapwd可以重建口令文件，语法如下:&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;TABLE width=679 bgColor=#999999 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width=673 height=123&gt;
&lt;BLOCKQUOTE&gt;&lt;PRE class=style23&gt;&lt;FONT size=2&gt;[oracle@jumper oracle]$ orapwd&lt;BR&gt;Usage: orapwd file=&lt;FNAME&gt; password=&lt;PASSWORD&gt; entries=&lt;USERS&gt; &lt;/FONT&gt;&lt;/PRE&gt;
&lt;P class=style23&gt;&lt;FONT size=2&gt;where&lt;BR&gt;file - name of password file (mand),&lt;BR&gt;password - password for SYS (mand),&lt;BR&gt;entries - maximum number of distinct DBA and OPERs (opt), &lt;BR&gt;There are no spaces around the equal-to (=) character.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=style23&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P class=style23&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=style23&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;img src ="http://swordhand.cndev.org/aggbug/2452.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>茗人</dc:creator><title>好不容易从代码里找到处理方法,记下来,别忘了</title><link>http://swordhand.cndev.org/archive/2004/07/01/1452.aspx</link><pubDate>2004-07-01 22:58:00Z</pubDate><guid>http://swordhand.cndev.org/archive/2004/07/01/1452.aspx</guid><wfw:comment>http://swordhand.cndev.org/comments/1452.aspx</wfw:comment><comments>http://swordhand.cndev.org/archive/2004/07/01/1452.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://swordhand.cndev.org/comments/commentRss/1452.aspx</wfw:commentRss><trackback:ping>http://swordhand.cndev.org/services/trackbacks/1452.aspx</trackback:ping><description>那个mis登录界面调用的存储过程是写在注册表里地,&lt;img src ="http://swordhand.cndev.org/aggbug/1452.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>