eclipse JDBC 连接到 SQL Server:用户 x 登录失败

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/12616582/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-19 19:04:45  来源:igfitidea点击:

JDBC connection to SQL Server: login failed for user x

javaeclipsesql-server-2008database-connectionconnection-string

提问by Sam

I am trying to set a JDBC connection to Sql Server 2008. I have created a database in Sql Server with this information:

我正在尝试设置到 Sql Server 2008 的 JDBC 连接。我在 Sql Server 中使用以下信息创建了一个数据库:

CREATE LOGIN xtest WITH PASSWORD = 'berenjenas7(((';  
GO  
CREATE USER samxtest FOR LOGIN xtest;  
GO  
GRANT SELECT TO samxtest;
GO  
GRANT INSERT TO samxtest;
GO  
GRANT UPDATE TO samxtest;
GO  
GRANT DELETE TO samxtest;
GO 

I installed the JDBC driver from here: http://www.microsoft.com/en-us/download/details.aspx?id=11774and I used the connectURL class from this link: http://msdn.microsoft.com/en-us/library/aa342339.aspxin order to test the connection.

我从这里安装了 JDBC 驱动程序:http: //www.microsoft.com/en-us/download/details.aspx?id= 11774我使用了这个链接中的 connectURL 类:http: //msdn.microsoft.com /en-us/library/aa342339.aspx以测试连接

I left the default port 1433 in the code. The following picture should be proof that this is really the port: enter image description hereAnd of course I changed the connection string to:

我在代码中保留了默认端口 1433。下图应该可以证明这确实是端口: 在此处输入图片说明当然我将连接字符串更改为:

String connectionUrl = "jdbc:sqlserver://localhost:1433;databaseName=XTest;user=samxtest;password=berenjenas7(((";

I don't understand what is wrong? The error I get is:

我不明白有什么问题?我得到的错误是:

com.microsoft.sqlserver.jdbc.SQLServerException: Login failed for user 'samxtest'. ClientConnectionId:2344af..... at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:216) at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:254) at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:84) at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:2908) at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:2234) at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$000(SQLServerConnection.java:41) at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:2220) at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:5696) at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1715) at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1326) at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:991) at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:827) at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1012) at java.sql.DriverManager.getConnection(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at connectURL.main(connectURL.java:18)

com.microsoft.sqlserver.jdbc.SQLServerException:用户“samxtest”登录失败。ClientConnectionId:2344af..... 在 com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:216) 在 com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:254) 在 com.microsoft .sqlserver.jdbc.TDSParser.parse(tdsparser.java:84) 在 com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:2908) 在 com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java) :2234) 在 com.microsoft.sqlserver.jdbc.SQLServerConnection.access$000(SQLServerConnection.java:41) 在 com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:2220) 在 com.microsoft.sqlserver .jdbc.TDSCommand.execute(IOBuffer.java:

回答by gks

Misread:

误解:

Make sure that Authentication Mode of the SQL server “Mixed Mode (Windows Authentication and SQL Server Authentication)”.

确保 SQL 服务器的身份验证模式为“混合模式(Windows 身份验证和 SQL Server 身份验证)”。

Run following script to change the authentication

运行以下脚本以更改身份验证

LOGIN xtest ENABLE

ALTER LOGIN samxtest WITH PASSWORD = 'password'