Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JDBC与SQL Server的连接:用户x登录失败_Java_Eclipse_Sql Server 2008_Database Connection_Connection String - Fatal编程技术网

Java JDBC与SQL Server的连接:用户x登录失败

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

我正在尝试设置与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;
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=abcde‌​ghijkl”;但它仍然不起作用;是否与设置登录启用相同?@Sam请查看此内容,可能我不知道它们是否相同。但我做了一个测试,也尝试了这个:alterloginxtestenable;使用PASSWORD='abcdefghijkl'更改LOGIN xtest,然后用string connectionUrl=“jdbc:sqlserver://localhost:1433;databaseName=XTest;user=XTest;password=abcde‌​ghijkl”;但还是不行。嗨,谢谢你,陌生人!我根本看不到混合模式,我目前在打开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身份验证模式(如上所述)的事实,我做到了这一点!