如何在未注册域的Linux系统上使用SQuirreL SQL连接到SQL Server?

29
我需要从未注册在公司域中的Linux机器连接到SQL 2008 R2服务器。我正在尝试使用SQuirreL SQL版本3.2.1。 我下载了Microsoft SQL Server JDBC Driver 3.0并将其分配给SQuirreL驱动程序选项卡。 现在,当我尝试在SQuirreL上创建别名时,我选择SQL Server驱动程序并调整URL。对于凭据,我使用我的域注册用户名和密码。 当我尝试测试连接时,总是会出现相同的错误: <"database-name">:用户'<"domain">\<"domain-user">'的登录失败。 我该如何解决这个问题?谢谢!
6个回答

28

我放弃了微软SQL Server JDBC驱动程序并下载了jTDS驱动程序。我稍微调整了一下,最终成功建立了连接。正确的连接字符串是:

jdbc:jtds:sqlserver://<server_ip>:1433;databaseName=<instance_name>;domain=<domain_name>

我花了大约2个小时来尝试连接。用了5分钟的jTDS就成功了。谢谢。 - blockloop

22

由于我曾在MacOS 10.9.3上遇到与SQuirrel SQL类似的问题,而不是在Linux平台上。Peter解决问题的方式启发了我。由于解决方案并不是最直接的,所以我决定在这里发布它。希望能帮助到某些人。

  1. 下载最新的Microsoft JDBC Driver 4.0 for SQL Server(tar.gz包)
  2. 只从包中提取sqljdbc4.jar
  3. 将jar文件复制到Squirrel SQL(内容-资源- Java-Lib)中
  4. 现在可以使用Microsoft MSSQL Server JDBC驱动程序创建别名
  5. 连接URL: jdbc:sqlserver:// SERVERNAME;databaseName=DATABASENAME

1
以防万一发生在其他人身上...微软驱动程序下载页面,在https下访问时,Chrome(截至撰写本文为44)无法启动下载。要开始下载,请转到http页面并重试。 - Adrian Lynch

7
我为自己找到了另一个解决方案。 我连接到 SQL Server 2008 R2 的 Windows 桌面上,需要按照以下步骤进行操作:
  • jtds-1.3.1.jar复制到 SQuirrel SQL \lib 目录中
  • 重新启动 SQuirrel SQL 并检查是否在驱动程序列表中看到 jTDS Microsoft SQL
  • 确保在驱动程序配置中,类名指定为 net.sourceforge.jtds.jdbc.Driver
  • 使用此连接字符串

jdbc:jtds:sqlserver://<hostnameOrIp>:<port>/<databaseName>;instance=<instanceName>


这个解决方案对我来说是最简单的。我只想补充一点,你需要获取jtds的副本。目前(2018年10月),它托管在SourceForge上。 - bfris
当我将驱动程序配置类名更改为所示时,我会收到错误消息 - 在jTDS Microsoft SQL驱动程序定义的Java类路径或额外类路径中都找不到net.sourceforge.jtds.jdbc.Driver类: java.lang.ClassNotFoundException: net.sourceforge.jtds.jdbc.Driver。 - WhyGeeEx

3

我成功地在linux机器上使用SQuirrel连接到了SQL Server。大致步骤如下...

  • 您只需要从MS下载一个jdbc jar文件(复制到“lib”文件夹中)
  • 必须使用SQL Server身份验证(而不是Windows网络身份验证)
  • 我们的数据库已经启用了SQL Server身份验证
  • 添加了一个登录名'jdoe'
  • 将jdoe的默认数据库设置为'XxxDb'
  • 将‘User Mapping’从jdoe添加到所需的数据库
  • 为jdoe在SQL Server上设置权限:'连接'和'查看任何数据库'
  • 连接字符串:jdbc:sqlserver://SERVERNAME:1433;databaseName=XxxDb

* 可能不需要所有步骤,可以根据情况灵活调整


1

要连接到 MS SQL Server,您需要获取 JDBC 驱动程序:

  • 下载最新的 Microsoft JDBC 驱动程序
  • 选择下载 .tar.gz
  • 提取包
  • 在 Squirrel-SQL 中,单击窗口左侧的驱动器选项卡
  • 右键单击 Microsoft MSSQL Server JDBC 驱动程序,然后选择 修改驱动程序...
  • 单击 额外类路径
  • 单击 添加
  • 浏览到 sqljdbc41.jar 所在的位置(应该位于 sqljdbc_4.1/enu/jre7/sqljdbc41.jar 或类似位置),然后单击 打开
  • 单击 确定
  • 现在,在驱动器列表中,Microsoft MSSQL Server JDBC 驱动程序 左侧应该有一个勾号,这意味着您已正确安装驱动程序

连接到 MS SQL Server:

  • 在窗口左侧点击别名选项卡
  • 点击+符号以创建新的别名
  • 为您的新连接输入名称
  • 在URL文本框中粘贴JDBC连接字符串(例如,Azure会在连接字符串下方给出)
  • 输入用户名和密码
  • 点击测试以查看是否可以建立连接
  • 如果测试成功,则点击确定完成连接创建

如果您在连接到Azure SQL数据库时遇到任何问题,则可能需要授予特定IP的访问权限或类似的访问特权。


0

请确保Microsoft jdbc驱动程序与您正在使用的Java运行时版本兼容,

我尝试使用Driver 6.0和java-9,但出现了以下错误: ClassNotFoundException:javax.xml.bind.DatatypeConverter 当我降级到Java SE Runtime Environment 8u101版本时, 它可以无问题连接。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接