【问题标题】:Oracle Can connect from client but not from script - invalid user/passwordOracle 可以从客户端连接,但不能从脚本连接 - 用户/密码无效
【发布时间】:2016-06-28 23:48:36
【问题描述】:

我正在尝试连接到 Oracle 数据库,并且我相信版本是 12c,我可以使用客户端(SQL Developer)连接到同一个数据库,但是在尝试使用我的 VBscript 连接时遇到问题想用作我的应用程序的一部分。

这是错误信息--

      **Exception: OraOLEDB - ORA-01017: invalid username/password; logon denied**

这是我用来连接的脚本 --

Option Explicit
On Error Resume Next
'Dim strSQLQuery: strSQLQuery = "SELECT sysdate FROM dual"
Dim strDBDesc: strDBDesc = "(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)    (HOST = XXX)(PORT = XXX))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME =     XXXX)))"
Dim strUserID: strUserID = "user"
Dim strPassword: strPassword = "pass"
Dim ADODBConnection: Set ADODBConnection =                               CreateObject("ADODB.Connection")
Dim strConnection
strConnection = "Provider=OraOLEDB.Oracle;Data Source=" & strDBDesc & _
            ";User ID=" & strUserID & ";Password=" & strPassword & ";"

ADODBConnection.Open strConnection

If Err <> 0 Then
    WScript.Echo "An error occurred in Opening Connection: " & Err.Number & " " & Err.Description & " " & Err.Source
End If
Set ADODBConnection = Nothing

【问题讨论】:

  • 我敢打赌,用户名和/或密码不同。要么是这样,要么你正试图从两个应用程序连接到不同的数据库。
  • 我提交了一个编辑,以便在问题中标记 VBA,以便可以回答的人。我快速浏览了一下,调用的语法看起来是正确的。您可以尝试使用 strDBDesc 中的 Oracle 服务名称而不是整个连接描述。在 cmd 提示符下使用 TNSPING 检查您的客户端是否正确解析了 Oracle 服务名称。如果这不起作用,请尝试其他类型的 Provider 连接。
  • 贾斯汀 - 我检查了我的凭据至少 25 次,它们看起来是对的!!
  • 主机/端口/服务是否指向同一个数据库(例如,试图从不同的机器连接到“localhost”上的数据库)?由于您是从参数组成一个字符串,密码是否包含任何标点分隔符?
  • 或尝试不同的提供商? "Provider=msdaora;Data Source="vbaexpress.com/forum/…

标签: oracle vba database-connection connection-string oracle12c


【解决方案1】:
  1. 密码是简单的还是带有特殊字符的?如果有特殊字符,请使用转义序列或引号。

  2. 基于下面在上面的sn-p中使用“ADODBConnection.ConnectionString = strConnection”然后打开连接。

  3. 放置断点并查看作为连接字符串传递给驱动程序的内容。

参考:https://docs.oracle.com/cd/E47955_01/win.121/e18594/using.htm

【讨论】:

  • 密码有一个 '_' 并且没有其他特殊字符,但它混合了大写和小写。我已经放置了一个连接字符串,并且我已经验证了脚本,但连接到其他实例并且没有问题。已为其他实例发布了缘故密码和用户名,使用相同脚本连接时没有问题。
  • 检查用户的连接权限。因为我没有看到代码有任何问题。所以它应该在这个实例或连接失败的用户上。检查连接权限。
【解决方案2】:

全部,

在我从他们的网站下载并安装了 Oracle ODAC 的最新副本后,我能够成功连接。

这里有更多详细信息 - 希望这有助于其他有类似问题的人 https://blogs.msdn.microsoft.com/dbrowne/2013/10/02/creating-a-linked-server-for-oracle-in-64bit-sql-server/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-10
    • 2013-01-06
    • 2021-10-23
    • 1970-01-01
    • 1970-01-01
    • 2012-05-24
    相关资源
    最近更新 更多