gpt4 book ai didi

Java MSAccess DSN 少

转载 作者:行者123 更新时间:2023-11-29 06:12:37 27 4
gpt4 key购买 nike

所以问题是我想连接到msaccess 数据库,每次打开它时都有密码。

  • 如果我直接打开 Access 文件,密码就有效。
  • 如果我删除密码,我可以建立连接,这意味着如果不涉及密码,我的代码可以工作
  • 密码是使用数据库工具中的设置数据库密码设置的
  • MS Access 2007(但我用的是.mdb)

这是代码

String dbFile = "db.mdb";
String connectionString = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=";
String driverID = ";DriverID=22;READONLY=true;pwd=qwer}";
if (CONNECTION == null || CONNECTION.isClosed()) {
dbURL = connectionString + dbFile.trim() + driverID;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
CONNECTION = DriverManager.getConnection(dbURL);
}

----------------------------------------------
Error Code : java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Not a valid password.
----------------------------------------------

我已经尝试将参数添加到 get 连接,但没有成功。请帮助:)

最佳答案

MS Access 数据库文件的密码有两种:

  1. 用户密码
  2. 数据库密码

使用用户密码,您可以在连接字符串中提供用户名和密码。

;User Id=admin;Password=;

对于数据库密码,您需要在连接字符串中使用不同的标识符来区分密码是数据库密码而不是用户密码。

;Database Password=MyDbPassword;

我个人不使用数据库密码。该功能并没有提供太多安全性,因此看起来麻烦多于它的值(value)。

编辑:我不知道是否可以为 ODBC 连接提供数据库密码。我发现的所有连接示例在包含数据库密码时都使用了 OLE DB。

Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=\\somepath\\mydb.mdb;" & _
"Jet OLEDB:Database Password=MyDbPassword;", "admin", ""

也许它可以从当前的 Access ODBC 驱动程序切换到 Microsoft OLE DB Provider for ODBC。或者,如果您切换,则可能使用当前的 ODBC 驱动程序

Database Password=MyDbPassword;

Jet OLEDB:Database Password=MyDbPassword;

我不知道。但在我看来,数据库密码只是妨碍了你。如果从数据库中删除密码,您已经知道可以连接。

关于Java MSAccess DSN 少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6261190/

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