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" 会非常感激 :))
您好,我正在尝试使用 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" 会非常感激 :))