【问题标题】:Open MS Access with OLEDB connection string and not have access create the .ldb lock file使用 OLEDB 连接字符串打开 MS Access,但无权创建 .ldb 锁定文件
【发布时间】:2009-05-11 18:14:32
【问题描述】:

我有一个使用 MS Access 数据库的 C# 程序,我正在使用 OleDb 连接并对该数据库进行查询。我的问题是我在数据库中有一些敏感信息,我不希望它显示为 Access DB。我更改了扩展名,但是当我打开它时,它仍然会创建 Access 使用的 .ldb 锁定文件。我想让数据库不创建那个锁文件。

我已经阅读了很多关于这个问题的帖子,听起来如果我以独占模式打开数据库,它不会创建那个 .ldb 文件。但是,到目前为止,我还没有找到任何用于 OleDb 的连接字符串,可以让我指定对数据库的独占访问权限。 C# 中的 OleDbConnection 对象也没有“模式”成员,因此无法以这种方式设置独占访问。

如果有人有任何可以在独占模式下打开数据库的连接字符串,或者如果有人知道另一种避免在 Access 中创建 .ldb 锁定文件的方法,我们将不胜感激。

【问题讨论】:

  • 你想用这个来完成什么?如果它真的那么敏感,那么通过默默无闻的安全性在这里可能不是一个好主意。如果我试图窥探,我可能会认为该文件是一个 Access DB。
  • 您似乎认为 LDB 文件本身构成了某种安全漏洞。 LDB 文件中没有存储来自您的数据文件的数据,只有有关锁定的元数据。 LDB 文件绝不是安全漏洞。 Jet MDB 文件本身当然很容易受到攻击,但这就是基于文件的数据库的本质。
  • 如果您认为更改文件扩展名可以保护敏感数据,那么请三思!

标签: c# ms-access


【解决方案1】:

http://www.connectionstrings.com/access 有一个 Ecxlusive 模式的条目。

【讨论】:

    【解决方案2】:

    如果您想避免锁定文件,我建议您使用SQLite 或其他非访问选项。

    尽量避免锁定文件是最困难的。即使您以独占模式打开文件,JET 有时也会创建这些文件。

    如果您尝试存储敏感数据,并且想要“隐藏”文件类型,另一个不错的选择是VistaDB。它是一个单文件数据库,但允许完整的数据库加密。这可能比仅仅试图掩盖您正在使用 JET 的事实更好。

    【讨论】:

    • @Goldorak84 否 - 但有时“正确”答案首先描述了该问题存在缺陷。
    • 作为 MSAccess 用户(由于遗留代码),有时很难获得高质量的答案(好问题),因为它更容易抨击 Access 而不是试图找到适合的解决方案OP 限制。
    【解决方案3】:

    您无法真正隐藏它是一个 Access 数据库。任何人都可以在十六进制编辑器(甚至只是记事本)中打开文件,然后看到一个字符串,如“Standard Jet DB”(Office 2000/XP/2003)或“Standard ACE DB”(Office 2007)正盯着他们看。即使他们不知道这意味着什么,谷歌也会很快告诉他们。您可以使用不太常见的数据库,但它们也会有类似的弱点。

    如果你真的想要安全,你将不得不加密数据库文件并使用一个引擎,让你将解密版本保存在内存中(IIRC sqlite 支持这一点,或将很快支持)或使用支持本机加密。即使这样,如果内存被分页到磁盘或另一个进程“嗅探”您的应用程序的内存,您也可能会遇到问题。


    更新较晚,但今天我的注意力又回到了这里,我想补充一点,但 Access 会要求您将引擎与应用程序一起分发。您还需要注意引擎的文件也不要泄露。访问获得通过,因为引擎已经是 Windows 的一部分。您也可以尝试一些开源的东西,这样您就可以将它重新编译到您的主应用程序文件中。

    【讨论】:

      【解决方案4】:

      我有几个设置了 Exclusive 标志的数据库,但每次打开一个时我仍然会创建 .ldb 文件。如果您真的担心安全问题,那么是时候迁移到“成熟”的数据库了。

      【讨论】:

        【解决方案5】:

        安装 SQL Server 2008 Express,在 Access 中使用升迁向导,指向您的 Express 实例。

        【讨论】:

          【解决方案6】:

          您也可以使用 Sql Server Compact 来执行此操作。它是免费的,并且是 Visual Studio 的一部分。微软在包括 Windows Live 在内的很多产品中都积极使用它。

          【讨论】:

            猜你喜欢
            • 2012-03-08
            • 1970-01-01
            • 2011-09-17
            • 1970-01-01
            • 2015-04-21
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多