【问题标题】:How should I set up my sqlnet.ora and tnsnames.ora files?我应该如何设置我的 sqlnet.ora 和 tnsnames.ora 文件?
【发布时间】:2022-01-07 06:45:26
【问题描述】:

我遇到了 sqlplus 登录的登录问题。当我使用主机名、端口和服务名称登录时,它工作正常。

sqlplus <userid>/<password>@<hostname>:<port>/<servicename>

上述命令没有问题。它按预期工作。

当我尝试使用连接字符串登录时,

sqplus <userid>/<password>@<connectstring>

我得到了

ORA-12154: TNS: 无法解析指定的连接标识符

我知道我的 sqlnet.ora 和 tnsnames.ora 不正确,但无法找出问题所在。

sqlnet.ora

SQLNET.AUTHENTICATION_SERVICES = (NTS)
NAMES.DEFAULT_DOMAIN = world

文件中有两行以上。

tnsnames.ora

MYTNSENTRY=
  (DESCRIPTION =
....

tnsnames.ora 中定义的主机名、端口和服务名称,只有一个条目。 我在windows平台上执行sqlplus命令。

非常感谢任何关于此的指针。

【问题讨论】:

  • 尝试在你的sqlnet.ora中添加NAMES.DIRECTORY_PATH = (TNSNAMES)并尝试sqplus ...@MYTNSENTRY.world
  • @WernfriedDomscheit 更新 DIRECTORY_PATH 后出现同样的错误 :(
  • 你试过tnsping(如果已安装)

标签: oracle sqlplus


【解决方案1】:

同意@EdStevens 所说的,并从sqlnet.ora 中删除SQLNET.AUTHENTICATION_SERVICES 行。该设置旨在帮助使用 Windows 原生安全性(如操作系统身份验证)对用户进行身份验证,但如果您不使用该设置,则通常会产生问题。

【讨论】:

    【解决方案2】:

    你的 sqlnet.ora 中有这一行:

    NAMES.DEFAULT_DOMAIN = world
    

    这意味着 '.world' 将被附加到您的连接字符串中,然后再在 tnsnames 中查找它。从 sqlnet.ora 中删除该行,或将“.world”附加到 tnsnames.ora 中的条目名称

    mytnsentry.world =
       (description...)
    

    【讨论】:

      猜你喜欢
      • 2012-09-21
      • 1970-01-01
      • 2015-07-14
      • 1970-01-01
      • 2011-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-14
      相关资源
      最近更新 更多