Java JDBC与SQL Server的连接:用户x登录失败
我正在尝试设置与SQLServer2008的JDBC连接。我已使用以下信息在Sql Server中创建了一个数据库:Java JDBC与SQL Server的连接:用户x登录失败,java,eclipse,sql-server-2008,database-connection,connection-string,Java,Eclipse,Sql Server 2008,Database Connection,Connection String,我正在尝试设置与SQLServer2008的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
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
我从这里安装了JDBC驱动程序:
我使用了这个链接中的connectURL类:
为了测试连接
我在代码中保留了默认端口1433。下面的图片应该证明这是真正的端口:
当然,我将连接字符串更改为:
String connectionUrl = "jdbc:sqlserver://localhost:1433;databaseName=XTest;user=samxtest;password=berenjenas7(((";
我不明白怎么了?
我得到的错误是:
com.microsoft.sqlserver.jdbc.SQLServerException:用户登录失败
“samxtest”。客户端连接ID: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:5696)
在
com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1715)
在
com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1326)
在
com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:991)
在
com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:827)
在
com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1012)
位于java.sql.DriverManager.getConnection(未知源)
位于的java.sql.DriverManager.getConnection(未知源)
main(connectURL.java:18)
误读:
确保SQL server的身份验证模式为“混合模式(Windows身份验证和SQL server身份验证)”
运行以下脚本以更改身份验证
LOGIN xtest ENABLE
ALTER LOGIN samxtest WITH PASSWORD = 'password'
误读:
确保SQL server的身份验证模式为“混合模式(Windows身份验证和SQL server身份验证)”
运行以下脚本以更改身份验证
LOGIN xtest ENABLE
ALTER LOGIN samxtest WITH PASSWORD = 'password'
为登录xtest创建用户samxtest;是否与设置登录启用相同?@Sam请查看此内容,可能我不知道它们是否相同。但我做了一个测试,也尝试了这个:alterloginxtestenable;使用PASSWORD='abcdefghijkl'更改LOGIN xtest,然后用string connectionUrl=“jdbc:sqlserver://localhost:1433;databaseName=XTest;user=XTest;password=abcdeghijkl”;但它仍然不起作用;是否与设置登录启用相同?@Sam请查看此内容,可能我不知道它们是否相同。但我做了一个测试,也尝试了这个:alterloginxtestenable;使用PASSWORD='abcdefghijkl'更改LOGIN xtest,然后用string connectionUrl=“jdbc:sqlserver://localhost:1433;databaseName=XTest;user=XTest;password=abcdeghijkl”;但还是不行。嗨,谢谢你,陌生人!我根本看不到混合模式,我目前在打开Sql Server Management Studio时有两个选项:Windows身份验证和Sql Server身份验证,并且每次都选择Windows身份验证,因此我使用Server name=“local”登录。我是否应该将其更改为Mixed,如果它没有显示,该如何处理?此外,samxtest(如果您检查我的初始问题)不是登录名,而是用户。登录名为xtest。我尝试了您在登录xtest时所说的话(这在我对swingNoobie的第一次评论中有详细说明)。但不工作。请检查服务器的属性,然后检查安全性,以验证这一点。它应处于“SQL server和Windows身份验证模式”Horray!我刚刚做了,现在它工作了!非常感谢,陌生人!你是一个英雄。作为总结:我不知道为什么我无法与我创建的用户连接,所以我按照陌生人的回答中的说明为登录分配了密码,再加上我切换到SQL Server和Windows身份验证模式(如上所述)的事实,我做到了这一点!嗨,谢谢你,陌生人!我根本看不到混合模式,我目前在打开Sql Server Management Studio时有两个选项:Windows身份验证和Sql Server身份验证,并且每次都选择Windows身份验证,因此我使用Server name=“local”登录。我是否应该将其更改为Mixed,如果它没有显示,该如何处理?此外,samxtest(如果您检查我的初始问题)不是登录名,而是用户。登录名为xtest。我尝试了您在登录xtest时所说的话(这在我对swingNoobie的第一次评论中有详细说明)。但不工作。请检查服务器的属性,然后检查安全性,以验证这一点。它应处于“SQL server和Windows身份验证模式”Horray!我刚刚做了,现在它工作了!非常感谢,陌生人!你是一个英雄。作为总结:我不知道为什么我无法与我创建的用户连接,所以我按照陌生人的回答中的说明为登录分配了密码,再加上我切换到SQL Server和Windows身份验证模式(如上所述)的事实,我做到了这一点!