2

我正在使用 UCanAccess 驱动程序连接到没有 Knime 软件安全性的 MS Access 数据库。现在,我需要使用由工作组安全文件 (MDW) 保护的 MS Access DB(MDB 文件)进行相同的连接。

任何人都知道如何使用 UCanAccess 做到这一点?或者也许使用另一个驱动程序?

当我从 Power BI 连接到该数据库时,我使用带有以下 url 的 odbc 连接器

jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\bsc_uob\Indicadores_UOB_cliente.mdb;SystemDB=C:\bsc_uob\Seguridad.mdw;

但我不能在 knime 中使用 odbc 驱动程序。

对于 UCanAccess,我需要类似的东西。我试图这样做:

jdbc:ucanaccess://C:\bsc_uob\Indicadores_UOB_cliente.mdb;SystemDB=C:\bsc_uob\Seguridad.mdw

但我得到了这个错误:

错误数据库连接器 0:20 执行失败:无法创建与数据库的连接:不支持解码。请选择支持读取当前数据库编码的 CodecProvider。

4

1 回答 1

2

我没有 Knime,但我能够应用以下步骤让 LibreOffice Base 打开一个受用户级安全 (ULS) 保护的 Access .mdb 文件。

首先,我使用此处的说明对 UCanAccess 和 LibreOffice Base 进行了正常设置。我确认我可以打开不受ULS 保护的 Access 数据库文件。

然后我将以下三 (3) 个 JAR 文件添加到 UCanAccesslib\文件夹:

  1. jackcess-encrypt-2.1.4.jar(可在此处获得)
  2. bcprov-jdk15on-1.52.jar(可在此处获得)
  3. CryptCodecOpener.jar(可在此处获得)

所以它包含

gord@gord-dv7-xubuntu0:~$ ll Downloads/JDBC/UCanAccess/lib
total 5580
drwxrwxr-x 2 gord gord    4096 Jan 17 05:54 ./
drwxrwxr-x 5 gord gord    4096 Jan 17 05:38 ../
-rw-rw---- 1 gord gord 2902942 Dec  1  2017 bcprov-jdk15on-1.52.jar
-rw-rw---- 1 gord gord  284220 Nov 16  2013 commons-lang-2.6.jar
-rw-rw---- 1 gord gord   62050 Sep 22  2015 commons-logging-1.1.3.jar
-rw-rw---- 1 gord gord    1146 Jan 16 17:40 CryptCodecOpener.jar
-rw-rw---- 1 gord gord 1467326 Oct  8  2013 hsqldb.jar
-rw-rw---- 1 gord gord  882908 Mar 10  2018 jackcess-2.1.11.jar
-rw-rw---- 1 gord gord   86730 Dec  1  2017 jackcess-encrypt-2.1.4.jar

然后我添加;jackcessOpener=com.gordthompson.ucanaccess.crypto.CryptCodecOpener到我的连接 URL 所以它变成了

jdbc:ucanaccess:///home/gord/Documents/protected.mdb;jackcessOpener=com.gordthompson.ucanaccess.crypto.CryptCodecOpener

我可以打开一个受 ULS 保护的 .mdb 文件。

于 2019-01-17T18:51:20.920 回答