【问题标题】:Can I add some public meta data to an encrypted Access 2010 database?我可以将一些公共元数据添加到加密的 Access 2010 数据库吗?
【发布时间】:2012-02-06 00:27:00
【问题描述】:

我的应用程序将其数据存储在 Access 2010 数据库 (accdb) 文件中。它受密码保护,这意味着它使用 AES-128 加密。

我想将一些元数据添加到公开可用的文件中。这样,我的应用程序的旧版本可以调查该文件,看看它是否值得尝试打开。否则,他们只会得到可怕的“无法识别的数据库格式”错误,这通常与文件损坏有关。

在 Windows 中,您可以右键单击文件,单击“属性”并在“详细信息”选项卡下查看属性。如果我添加属性,如上次接触文件的应用程序版本,以及其他细节,我会很高兴。我想避免为我的应用的每个版本使用不同的文件扩展名!

是否可以将一些公共元数据添加到加密的 Access 2010 数据库中?

【问题讨论】:

    标签: ms-access


    【解决方案1】:

    您可以添加自定义数据库属性:http://support.microsoft.com/default.aspx?scid=kb;en-us;q178745

    您可以更改加密 Access 数据库的文件扩展名并更改该扩展名的属性。扩展名 .enc 具有相当的描述性,似乎没有被广泛使用。

    点击后文件会正常打开并要求输入密码。该图标将是可识别的 Access,并且在这种情况下,“加密 MS 访问”的描述将出现在“在目录列表中键入”下。

    使用 NTFS,您可以添加备用数据流 (ADS):

    notepad.exe z:\docs\testde.enc:Extra.txt
    

    读取流:

    more < testde.enc:extra.txt
    

    更多信息:
    http://www.think-techie.com/2010/04/alternate-data-streams.html
    http://www.irongeek.com/i.php?page=security/altds

    【讨论】:

    • 唯一的问题是,在您提供密码并且数据库被解密之前,这些数据库属性不可用。
    • 这不是加密的重点。数据库中包含的信息是安全的。
    • 我想添加几百字节的非加密数据来描述文件的其余加密部分。
    • NTFS 替代数据流可能会起作用。我会检查一下。谢谢!
    • 刚刚查看了 NTFS ADS。对我来说很有趣。将在仅 NTFS 的世界中工作。将文件复制到非 NTFS 驱动器时,不会保留这些备用流。
    【解决方案2】:

    这是一个难以破解的难题!应用程序必须读取有关 ACCDB 的信息,但该信息不能存储在 ACCDB 中,因为您希望在不打开 ACCDB 的情况下进行读取。而且您不能使用建议的文件系统方法,因为这必须在 Mac 上的 Wine 下工作(我假设您的另一个问题)。

    我能看到的唯一解决方案是创建一个伴随文件(具有相同的基本名称但不同的扩展名)来保存元数据。因此,如果您的应用程序想了解 SomeDb.accdb,它会查找名为 SomeDb.metadata 的文件并改为读取该文件。

    我为您之前的问题提出了一个建议......不幸的是,这是另一个问题。 :-) 然而,这是一个简单的组合,它应该工作......即使在 Mac 上。

    【讨论】:

    • 谢谢。这与我得出的结论相同。
    猜你喜欢
    • 1970-01-01
    • 2016-06-18
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 2014-10-25
    • 2013-01-12
    相关资源
    最近更新 更多