2010-02-02 56 views
0

我们已经开始使用SQL Server 2005 Express作为项目,并且我注意到每个数据库都有它自己的MDF/LDF文件。无论何时我们需要复制我们的数据库(到另一个SQL Server),我们只需复制这些文件,然后将它们附加到数据库。SQL Server 2005 MDF文件有多安全? (re:security)

但是,这让我想知道这些文件的安全性。如果来自外部的人得到了他们的副本,他们是否被加密,或者他们是否可以像我一样附加在他们身上?当我自己复制/附加它们时,我不会收到任何密码提示,所以我有点紧张。

感谢, 约翰

回答

3

他们是不加密的,可与读访问MDF/LDF文件被加载/附加任何人。

如果需要保护实际的MDF文件,您可以采取几种方法。 (这是假设,仅仅使用文件权限来锁定访问是不可行的,例如,如果你需要,以防止具有管理权限的机器或硬盘直接接入用户。)

  1. 使用EFS或BitLocker的或类似的加密文件本身。这不会防止访问文件的同一会话/上下文中的其他应用程序,但它可以防止其他帐户访问文件(EFS)或有人窃取笔记本电脑/硬盘驱动器(EFS/BitLocker)。
  2. 加密数据库本身内的敏感数据。您显然希望单独存储加密密钥(例如,可能使用DPAPI来保护它)。 SQL Server 2008企业版引入了一个称为透明数据库加密(Transparent Database Encryption,TDE)的特性,以使此过程更加简单,但对于2005或Express Edition而言,这显然不利于您。在这种情况下,您的最佳选择可能是在您的应用中对敏感数据进行自定义加密。 (不幸的是,在2005年,这将需要使用varbinary字段或Base64编码加密值等)。
  3. 不要在本地存储数据(即使用远程SQL Server而不是本地Express实例)。这并没有真正解决问题,但它减少了它(你只需要保护远程实例而不是N本地/快速拷贝)。
+0

谢谢! SQL Server 2005/2008的全部功能是否以相同的方式工作? (即如果有人访问文件系统,那么他们可以访问您的整个数据库?) 我不太熟悉EFS/BitLocker,但我会看看他们,但我们可能会最终限制访问到硬盘并在我们的数据访问DLL中使用简单的加密算法。 – SofaKng 2010-02-02 18:46:42

+0

只是想补充一点,你也需要加密备份。许多时候,大量数据被盗取的原因是来自未加密的备份磁带,这种磁带比分离并复制数据库文件(用户可能会注意到您已分离数据库)更容易被窃取。 – HLGEM 2010-02-02 18:47:02

+0

除dba外,其他人都无权复制移动或​​删除生产服务器上的文件。另外,您需要分离数据库以复制文件。 – HLGEM 2010-02-02 18:48:17