You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows 7 x64下Oracle 11g XE数据库访问及登录故障求助

解决Oracle XE 11g执行修复步骤后ORA-01017登录失败的问题

我太懂这种按教程操作反而出岔子的郁闷了——明明没碰过密码,之前登录好好的,结果折腾完数据库找不到的问题后,反而连sqlplus都进不去了。别慌,咱们一步步来排查解决:

  • 先通过操作系统认证绕过密码登录:
    打开命令提示符(Windows)或终端(Linux),直接输入:

    sqlplus / as sysdba
    

    这个命令利用Oracle的本地操作系统认证机制,只要你是安装Oracle的系统用户或者属于dba组,就能直接以SYSDBA身份进入数据库,不用输密码。

  • 检查并修复用户账户状态:
    登录成功后,先查一下你常用的那个用户(比如SYSTEM、HR或者你自己创建的账户)的状态,执行这条SQL:

    SELECT username, account_status FROM dba_users WHERE username = '你的用户名';
    

    注意把你的用户名换成实际的,而且要大写(Oracle用户名默认是大写存储的)。

    • 如果结果显示LOCKED或者EXPIRED,说明账户被锁或者密码过期了,执行下面两条命令解锁并重置密码(密码可以设回你之前用的,只要符合Oracle的复杂度要求):
      ALTER USER 你的用户名 ACCOUNT UNLOCK;
      ALTER USER 你的用户名 IDENTIFIED BY 你的原密码;
      
    • 如果账户状态是OPEN,那大概率是修复过程中密码的哈希值出了问题,直接执行上面的重置密码命令就行,哪怕用原来的密码,刷新一下哈希就能解决。
  • 检查sqlnet.ora配置是否被修改:
    有时候修复步骤可能改了认证相关的配置文件,找到Oracle XE的安装目录:

    • Windows一般是C:\oraclexe\app\oracle\product\11.2.0\server\network\admin
    • Linux一般是/u01/app/oracle/product/11.2.0/xe/network/admin
      打开sqlnet.ora文件,找到SQLNET.AUTHENTICATION_SERVICES这个参数:
    • 如果它的值是NONE,会强制要求密码验证,连操作系统认证都用不了,改成(NTS)(Windows)或者(ALL)(Linux)就行。
      修改完保存后,重启Oracle服务:Windows在服务列表里找OracleServiceXE右键重启;Linux执行sudo service oracle-xe restart。
  • 最后测试登录:
    退出sqlplus,用重置后的密码尝试登录,比如:

    sqlplus 你的用户名/你的密码
    

    或者先输入sqlplus /nolog,再执行CONNECT 你的用户名/你的密码。

另外提醒一下:Oracle 11g默认对用户名是大小写不敏感的,但如果之前修改过SEC_CASE_SENSITIVE_LOGON参数开启了大小写敏感,那输入用户名和密码的时候要严格匹配原来的大小写哦。

内容的提问来源于stack exchange,提问作者FelipeFonsecabh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:12:12