SQL 服务器 2014 jdbc 访问

SQL Server 2014 jdbc access

您好,我正在尝试使用 jdbc 连接到 SQL 2014(Talend V6.4 或 Squirrel 给出相同的错误)

尝试使用 sa 凭据连接到数据库(在 SQL Management Studio 上工作,所以这不是密码错误的问题),我收到连接错误,基本上是 [=30 的访问权限=] 没有成功(我没有更有意义的堆栈跟踪,如果有任何地方可以找到它,我会很高兴 post 它)。

有什么我应该要求我们的 dba 启用以允许 JDBC 连接到该数据库吗?

驱动程序版本:sqljdbc_6.2.2.0 Jdk 1.8 Talend 版本 6.4.1 松鼠版本 3.8.1

jdbc url

jdbc:sqlserver://SERVERNAME:1433;databaseName=PM

更新:

完整的堆栈跟踪

com.microsoft.sqlserver.jdbc.SQLServerException:按 l'utente 'sa' 添加非 riuscito。 ClientConnectionId:ff3ce3cd-a6a8-49c4-81ef-91ff737d13f1 在 com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:258) 在 com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:256) 在 com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:108) 在 com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4290) 在 com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3157) 在 com.microsoft.sqlserver.jdbc.SQLServerConnection.access100 美元(SQLServerConnection.java:82) 在 com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3121) 在 com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7151) 在 com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2478) 在 com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2026) 在 com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1687) 在 com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1528) 在 com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:866) 在 com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:569) 在 net.sourceforge.squirrel_sql.fw.sql.SQLDriverManager.getConnection(SQLDriverManager.java:133) 在 net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.executeConnect(OpenConnectionCommand.java:167) 在 net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.access000 美元(OpenConnectionCommand.java:45) 在 net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand$1.run(OpenConnectionCommand.java:104) 在 java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 在 java.util.concurrent.FutureTask.run(FutureTask.java:266) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 在 java.lang.Thread.run(Thread.java:745)

最后发现这一切都与客户在 SQL 2014 年所做的特定安装有关。看起来它在 1433 上工作......它在 1433 上为 MS 本机客户端工作,但是实际上它被配置为使用动态......所以我们必须配置 Squirrel 运行 "without" 端口和 Talend 连接器在 51889(SQL 服务器动态端口)上工作。

所以最后这只是一个配置问题和 SQL 服务器的奇怪消息(像 "incorrect port: use dynamic port instead" 会非常感激 :))