在Linux环境下设置 ora-01031:insufficient privileges解决方法总结

今天需要使用sys用户处理问题,但是报错上面ora-01031:insufficient privileges。

在网上有很多方法,这个是自己经过测试的方法步骤。

1:首先检查文件sqlnet.ora文件是否设置正确(文件地址就是你oracle安装的目录)

  1. # sqlnet.ora Network Configuration File: /app/oracle/product/10.2.0/network/admin/sqlnet.ora
  2. # Generated by Oracle configuration tools.
  3. NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT, HOSTNAME)
  4. <span style="color:#FF0000;">SQLNET.AUTHENTICATION_SERVICES=(ALL)
  5. </span>

2:如果上面设置正确(为什么设置可以参考http://blog.csdn.net/huoyin/article/details/45544709)

然后用ssh等连接工具访问Linux服务器这里注意了如果存在多个实例需要指定

登录oracle

  1. su - oracle

指定实例

  1. export ORACLE_SID=***

3:需要检查系统配置

登录oracle

  1. sqlplus / as sysdba

查询

  1. SQL> show parameter password
  2. NAME                         TYPE        VALUE
  3. ------------------------------------ ----------- ------------------------------
  4. remote_login_passwordfile            string      EXCLUSIVE
  5. SQL>

2:检查有哪些用户

  1. SQL> select * from v$pwfile_users;
  2. USERNAME                       SYSDB SYSOP
  3. ------------------------------ ----- -----
  4. SYS                    TRUE  TRUE
  5. SQL>

因为我已经操作过了现在显示是有sys的,没有设置的是空的

  1. SQL> grant sysdba to sys;
  2. grant sysdba to sys
  3. *
  4. ERROR at line 1:
  5. ORA-01994: GRANT failed: password file missing or disabled

3:现在添加文件退出oracle用户

  1. SQL> exit
  2. Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
  3. With the Partitioning, OLAP and Data Mining options
  4. [oracle@dd ~]$

4:添加文件

执行添加加密的建立password文件

  1. [oracle@dd ~]$orapwd file=/app/oracle/product/10.2.0/dbs/orapwprice.ora password=111111 entries=10 force=y

因为是linux所以文件明是orapw+实例.ora 
window是pwd+实例.ora

5:重启服务,用sys登录

上一篇:Android-SpinKit 进度条 (ProgressBar)


下一篇:unity如何显示血条(不使用NGUI)