gpt4 book ai didi

java - 无法使用 Java 访问 SQL Server 中的一个数据库

转载 作者:行者123 更新时间:2023-11-30 06:58:12 25 4
gpt4 key购买 nike

我有一个 SQL Server 2012 版本。我在这台服务器上有两个数据库。其中一个名为 BANKTEST 的数据库是从几个月前的备份中恢复的。我最近恢复了另一个名为 NEWBANK 的数据库。

下面是我写的访问NEWBANK的java程序

package com.example.myproject.client;

import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class ConnectMSSQL {

public static void main(String[] args) throws SQLException, ClassNotFoundException {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection conn = DriverManager.getConnection("jdbc:sqlserver://127.0.0.1;user=sa;password=sa123;Database=NEWBANk");
System.out.println("test");
Statement sta = conn.createStatement();
String Sql = "select TOP 10 CodeType from D001002";
ResultSet rs = sta.executeQuery(Sql);
while (rs.next()) {
System.out.println(rs.getString("CodeType"));
}
}
}

不幸的是,我收到了下面列出的错误

> Exception in thread "main" com.microsoft.sqlserver.jdbc.SQLServerException: Cannot open database "NEWBANK" requested by the login. The login failed. ClientConnectionId:69c57dd7-38b1-413c-b8ea-8d53824f74e1
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 com.example.myproject.client.ConnectMSSQL.main(ConnectMSSQL.java:13)

如果我用 BANKTEST 替换数据库的名称,我不会收到任何错误。有人可以就此给我建议吗?

问候

萨钦

最佳答案

错误表明您用于登录数据库 NEWBANK 的用户名和密码无效或没有访问它的权限。

您需要与您的 DBA 检查您的登录详细信息,然后再次尝试登录。您还可以使用您在代码中使用的登录凭据检查是否可以使用 SQL Server Management Studio 访问数据库。(您可能也会在那里发现相同的错误)

您也可以按照此处给出的步骤操作:SQL SERVER – FIX : ERROR : Cannot open database requested by the login.

Go to SQL Server >> Security >> Logins and right click on NT AUTHORITY\NETWORK SERVICE and select Properties

enter image description here

In newly opened screen of Login Properties, go to the “User Mapping” tab. Then, on the “User Mapping” tab, select the desired database – especially the database for which this error message is displayed. On the lower screen, check the role db_owner. Click OK.

enter image description here

关于java - 无法使用 Java 访问 SQL Server 中的一个数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32882975/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com