无法通过 java 或其他工具连接到本地 sql server sqlexpress 实例
Posted
技术标签:
【中文标题】无法通过 java 或其他工具连接到本地 sql server sqlexpress 实例【英文标题】:Cannot connect to local sql server sqlexpress instance via java nor other tools 【发布时间】:2013-02-09 19:12:21 【问题描述】:我在 Win 7 64 上安装了 SQL Server 2008 Express。我可以使用 Windows Auth 通过 SQL Server Management Studio 连接到它,但不能使用 SQl Server Auth。按照http://www.linglom.com/2009/03/28/enable-remote-connection-on-sql-server-2008-express/ 中的指示,我觉得我已经正确配置了远程连接和sql server auth。然而,当我尝试登录时,我收到一条错误消息,指出登录失败。谷歌搜索似乎没有帮助答案没有意义,似乎不适用。其中之一是建议将动态端口更改为空白,对端口进行硬编码。由于默认情况下没有以这种方式安装此工具,因此我很难相信这是实际问题。我发现没有一篇文章解释了为什么应该改变它。
确切的信息是:
无法连接到 bvl-wd-bturner\SQLEXPRess 附加信息: 用户“DTN\bill.turner”登录失败。 (Microsoft SQL Server,错误 18456)
我尝试使用以下凭据登录:
服务器类型:数据库引擎 服务器名称:bvl-wd-bturner\SQLEXPRESS 身份验证:SQL Server 身份验证 登录:DTN\bill.turner 密码:
对于它的价值,使用 Windows 身份验证登录,我查看了连接属性。用户名与上面的登录名一致。服务器名称是相同的(实际上是复制/粘贴以确保两者)。
=== 更新 === Windows 防火墙已关闭。
即使我有所保留,我也尝试硬编码端口号,删除所有动态端口上的“0”并将端口设置为 1433。不走运。 :-(
=== 更新 2 === 我意识到我需要创建一个 SQL Server 帐户并且已经这样做了。我现在可以使用以下凭据通过 SSMS 登录。但是,我似乎无法通过 DbVisualizer 或测试 java 文件登录:
驱动是 net.sourceforge.jtds.jdbc.Driver 连接 url 为 jdbc:jtds:sqlserver://bvl-wd-bturner:1433/host
我现在在 SSMS 中成功使用的凭据是: 服务器类型:数据库引擎 服务器名称:bvl-wd-bturner\SQLEXPRESS 身份验证:SQL Server 身份验证 登录:本地 密码:
在这一点上,我必须相信这是我明显缺少的东西,但还没有找到。
【问题讨论】:
【参考方案1】:登录:DTN\bill.turner 看起来像 Windows 登录,而不是没有域组件的 SQL 服务器登录。 DTN是你的域名吗?如果是这样,提供此 SQL 登录名可能会使客户端混淆尝试 Windows 身份验证,如果登录名不存在,则会失败。
您创建的 SQL 服务器登录名是什么(在 SQL 管理工作室中)?它不应该有域\用户名格式,它应该只是一个用户名。您还需要确保在连接时选择 SQL 身份验证。
【讨论】:
我还没有创建 sql server 帐户。在我上次更新后意识到这一点。我现在创建了一个名为“local”的用户,并且可以使用它来记录 SSMS。但是,我还没有找到在 java 中建立连接的关键,也没有通过 DbVisualizer。我同时使用 jtds 驱动程序。 如果您使用的是 JTDS,请参阅下面的 question,其中解释了连接字符串所需的格式。 在阅读了该帖子和其他类似帖子之后,很明显我需要在 url 字符串中指定实例。我认为 SQLEXPRESS 是默认设置,因此不需要。所以,对于那些偶然发现这篇文章的人,我的最后一个连接字符串是“jdbc:jtds:sqlserver://localhost:1433/host;instance=SQLEXPRESS”。【参考方案2】:尝试将您当前登录的帐户 (Windows) 添加到您计算机上的本地管理员组。
【讨论】:
我意识到我需要创建一个单独的“sql server”帐户来达到我的目的。请参阅我对 steoleary 的评论。【参考方案3】:开头贴的链接, http://www.linglom.com/2009/03/28/enable-remote-connection-on-sql-server-2008-express/
加上这篇关于设置数据库默认登录的文章: http://blog.sqlauthority.com/2008/11/04/sql-server-fix-error-4064-cannot-open-user-default-database-login-failed-login-failed-for-user/
为我解决了这个问题。希望它能帮助到这里的其他人。
【讨论】:
以上是关于无法通过 java 或其他工具连接到本地 sql server sqlexpress 实例的主要内容,如果未能解决你的问题,请参考以下文章
System.Data.SqlClient.SqlException - 无法通过Management Studio连接到SQL Server