ORA-01017 无效的用户名/密码登录被拒绝

Posted

技术标签:

【中文标题】ORA-01017 无效的用户名/密码登录被拒绝【英文标题】:ORA-01017 invalid username/password logon denied 【发布时间】:2019-05-15 07:49:20 【问题描述】:

我正在处理一个家庭作业问题。我需要让 Oracle 12c 在 Windows 上与 sqldeveloper 一起工作,我得到了:

测试失败:ORA-01017:用户名/密码无效;登录被拒绝。

我尝试过的步骤:

    alter user sys as identified by "<password>",然后是alter user sys account unlock

    Select username/password from dba_users - 这给了我一个看起来很不干净的输出,即格式

    USERNAME
    ------------------------------------------------------------------------------ 
    
    PASSWORD
    --------------------------------------------------------------------------------
    THINK THIS IS A USERNAME
    
    THINK THIS IS A PASSWORD
    

一些单词

这会重复。假设第一个响应是用户名,第二个响应是密码,我尝试了两者的各种组合。然后我尝试了第一和第三的各种组合,仍然没有运气。我已经解锁了多个帐户,使用了其中不少。不走运。

    找到了我的 tsnames.ora,我没有看到任何类似于用户名和密码的内容。我确实看到它使用的是本地主机和端口 1521,我在我的 SQL Developer 中拥有这些

    在 SQL 中运行 Select instance from v$thread; 并返回 orcl,将其用作我的 SID

    尝试了各种连接类型,包括 PDBORCL,但 PDBORCL 似乎不适合我。

    尝试重新安装 Oracle 12g,我没有看到它要求我输入用户名的任何地方。它确实要求输入全局数据库名称下的密码。我尝试了该密码和 SYS 或我的 oracle 在线帐户的组合,没有。

    在 sql developer 的首选项下的高级设置中设置我的 tnsnames 目录

    试图解锁 scott/tiger 帐户 - 这似乎不是 12g 中的有效帐户

    向https://profile.oracle.com请求了一个新密码,试过了。同样的错误。

    尝试了这里的说明,没有骰子:https://oracle-base.com/articles/misc/os-authentication

    运行 lsnrctl 状态并确认 sql 正在运行

    看了不少堆栈溢出链接

    容器名称为 CDB$ROOT 和 ID 为 1。已添加 在我的 listener.ora 文件中使用 USE_SID_AS_SERVICE_CDB$ROOT=on 并重新启动 lsnrctl

我的 tnsnames.ora:

LISTENER_ORCL =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))


ORACLR_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
  (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
(CONNECT_DATA =
  (SID = CLRExtProc)
  (PRESENTATION = RO)
)
)

ORCL =

(描述 = (地址 =(协议 = TCP)(主机 = 本地主机)(端口 = 1521)) (连接数据 = (服务器 = 专用) (SERVICE_NAME = orcl.national.x.com) ) )

【问题讨论】:

sys 无法使用密码,除非您将 AS SYSDBA 字符串添加到您的连接中 - 否则您在安装时提供的密码适用于 SYS 和 SYSTEM 用户......一旦你在这些中,您可以更改数据库上任何帐户的密码 请阅读Under what circumstances may I add “urgent” or other similar phrases to my question, in order to obtain faster answers? - 总结是这不是解决志愿者的理想方式,并且可能会适得其反。请不要将此添加到您的问题中。 【参考方案1】:

好的!因此,如果 Oracle 没有提示您输入用户名,则默认用户名是 SYSTEM。

所以! 用户名:SYSTEM 密码:我在创建数据库时输入的密码(或我的帐户密码,我将它们命名为相同) sid 必须是 orcl,如果没有如上设置 localhost 和端口必须与 tnsnames.ora 中的内容匹配

这样就解决了!希望其他人会发现这很有帮助,并且不会像我那样掉进很多兔子洞

【讨论】:

很高兴看到您找到了解决问题的方法,但是,我既不理解您的问题,也不理解您的答案 - 谢天谢地,您自己做了! @WernfriedDomscheit 这就是现在学生的工作方式。 我发布了我遇到的错误,我不确定我能说清楚多少:测试失败:ORA-01017:用户名/密码无效;登录被拒绝。 我想我理解这个问题和答案,因为我已经运行过它,但如果你希望任何人从中得到任何东西,我肯定会建议清理措辞

以上是关于ORA-01017 无效的用户名/密码登录被拒绝的主要内容,如果未能解决你的问题,请参考以下文章

Oracle.ManagedDataAccess 和 ORA-01017:用户名/密码无效;登录被拒绝

Sqldeveloper 无法连接 Oracle 数据库(ORA-01017,用户名/密码无效;登录被拒绝)

Oracle 11g r2 ORA-01017:用户名/密码无效;通过 JDBC 驱动程序连接时登录被拒绝

oracle 数据库 显示新建数据库连接失败 错误原因ora-01017:用户名 口令无效 登陆被拒绝

java.sql.SQLException: ORA-01017: 用户名/口令无效; 登录被拒绝

ORA-01017: 用户名/口令无效; 登录被拒绝