密码文件维护
<h2>说明</h2>
<p><img src="https://upload-images.jianshu.io/upload_images/6356247-4857ee1f2d1d4152.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="ORACLE密码文件" /></p>
<ul>
<li>
<p>该文件不知道是什么,这么丑,cat命令还无法看,就把它删除了
<code>/u01/app/oracle/product/12.2.0/db_1/dbs/orapworcl</code></p>
</li>
<li>
<p>直到PLSQL Developer无法登录sys 账号才知道删除错文件了(肯定账号密码正确)
<code>ORA-01017:invalid username/password;logon denied</code></p>
</li>
<li>
<p>任意密码都可以登录sys用户</p>
<pre><code>SQL> connect sys/1 as sysdba
Connected.
SQL> show user
USER is "SYS"</code></pre>
</li>
<li>因为登录方式默认是系统验证
<pre><code>/u01/app/oracle/product/12.2.0/db_1/network/admin/sqlnet.ora/orapworcl
#SQLNET.AUTHENTICATION_SERVICES= (NTS)</code></pre></li>
</ul>
<h2>恢复误删除的ORACLE密码文件</h2>
<ul>
<li>设置sqlplus非系统验证登录oracle数据库</li>
</ul>
<p><img src="https://upload-images.jianshu.io/upload_images/6356247-e91c4ca83a04fa6c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="非系统验证" /></p>
<ul>
<li>
<p>orapwd.exe重新创建密码文件,密码难度有要求
<code>/u01/app/oracle/product/12.2.0/db_1/bin/orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=oracle entries=5 force=y</code></p>
</li>
<li>
<p>报错密码精度不够
<code>OPW-00029: Password complexity failed for SYS user : Password must contain at least 8 characters.</code></p>
</li>
<li>
<p>修改复杂密码
<code>/u01/app/oracle/product/12.2.0/db_1/bin/orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=ABCabc18312550321@ entries=5 force=y</code></p>
</li>
<li>
<p>完蛋了,密码有@符号
sqlplus sys/ABCabc18312550321@ as sysdba
无法识别特殊符号登录</p>
</li>
<li>
<p>删除文件重新创建
<code>/u01/app/oracle/product/12.2.0/db_1/bin/orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=ABCabc18312550321! entries=5 force=y</code></p>
</li>
<li>终于登录成功
<pre><code>SQL> connect sys/ABCabc18312550321! as sysdba
SQL> alter user sys identified by oracle ;</code></pre></li>
<li>
<p>查看$ORACLE_SID值 </p>
<pre><code>select * from global_name;--==$ORACLE_SID
[oracle@oracle dbs]$ echo $ORACLE_SID
orcl</code></pre>
</li>
<li>重新生成orapworcl文件,PLSQL Developer可以登录sys 账号</li>
</ul>