使用UCanAccess连接到使用工作组安全文件(MDW)保护的MS Access数据库

时间:2019-01-17 12:47:41

标签: java ms-access jdbc ucanaccess mdw

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

有人知道如何使用UCanAccess做到这一点吗?还是使用其他驱动程序?

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

apiVersion: v1
kind: Pod
metadata:
  namespace: default
  name: dns-example
spec:
  containers:
    - name: test
      image: nginx
  dnsPolicy: "None"
  dnsConfig:
    nameservers:
      - 1.2.3.4
    searches:
      - ns1.svc.cluster.local
      - my.dns.search.suffix
    options:
      - name: ndots
        value: "2"
      - name: edns0

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

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

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

但是我得到了这个错误:

  

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

1 个答案:

答案 0 :(得分:1)

我没有Knime,但是我可以执行以下步骤来使LibreOffice Base打开受用户级安全性(ULS)保护的Access .mdb文件。

首先,我按照说明here进行了UCanAccess和LibreOffice Base的常规设置。我确认可以打开不受ULS保护的Access数据库文件。

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

  1. jackcess-encrypt-2.1.4.jar(可用的here
  2. bcprov-jdk15on-1.52.jar(可用的here
  3. CryptCodecOpener.jar(可用的here

所以它包含了

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添加到了我的连接网址中,使它变成了

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

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