java - 尝试使用 SQL Server 身份验证连接到 SQL Server 2008 Express 数据库始终会导致 "Login failed for user ' .. .'."

标签 java sql-server sql-server-2008 sql-server-2008-express jtds

我正在使用 jTDS 使用 SQL Server 身份验证(而不是 Windows 的身份验证方法)将 Liferay 实例连接到 SQL Server 2008 Express 服务器。我的 portal-ext.properties 中有类似的内容:

jdbc.default.driverClassName=net.sourceforge.jtds.jdbc.Driver
jdbc.default.url=jdbc:jtds:sqlserver://127.0.0.1:1433/somedb
jdbc.default.username=someuser
jdbc.default.password=somepassword

(对于那些不了解 Liferay 的人来说,这有点类似于调用

Class.forName("net.sourceforge.jtds.jdbc.Driver");
con = DriverManager.getConnection("jdbc:jtds:sqlserver://127.0.0.1:1433/somedb",
                                  "someuser", "somepassword");

但是,尽管我传递了正确的用户名和密码,但它仍然出现错误,并显示消息用户“someuser”登录失败。我确信服务器登录、数据库用户和数据库存在并且配置良好。

可能出了什么问题?

最佳答案

嗯,我想造成这种错误的原因可能有无数种。尽管如此,就我而言,解决方案如下:

  1. 在 SQL 配置管理器中启用 TCP/IP 连接。

  2. 打开 SQL Server Management Studio(如果尚未安装,请安装它;不过,它可能包含 its own pitfalls)。

  3. 右键单击数据库服务器(如下图所示),然后单击属性Right-clicking on the database server

  4. 选择安全选项并标记SQL Server 和 Windows 身份验证模式。单击“确定”。 Database server Security properties
  5. 打开 SQL Server 配置管理器并重新启动 SQL Server 服务。

此后,我的连接就没有问题了。 This article对我帮助很大。

关于java - 尝试使用 SQL Server 身份验证连接到 SQL Server 2008 Express 数据库始终会导致 "Login failed for user ' .. .'.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16351326/

相关文章:

java - hibernate :flush() 和 commit()

c# - 具有 linq 数据上下文的存储过程返回值

sql-server - 链接服务器的替代方案,具有相同的速度

sql - 无法将 YYYYMMDD 转换为日期

mysql - 如何将Common table expression查询的Row_number转换为Mysql

sql - SQL 分页比获取所有数据花费的时间更长(x15~x20)是否正常?

java - 根据字数分析文本文件

java - 如何在 log4j2.xml 中配置 Log4J2 Kubernetes 支持

sql-server - 如何使用 dplyr 连接 SQL Server 中表中多列的字符串?

java - "Buffer Error", "转换结果时出错 java.lang.NullPointerException : lock == null