代码之家  ›  专栏  ›  技术社区  ›  RicardoBalda

如何保护SQL Server数据文件.MDF并锁定LDF不被复制?

  •  1
  • RicardoBalda  · 技术社区  · 14 年前

    我升级了一个小的Ms Acces桌面应用程序到VB.net版sqlserverexpress2008r2,这个应用程序运行在不同的客户端局域网(大约50个)上,有一个专用的windowsserver2008r2和两个或多个PC客户端。

    所有安装都有SQLServerSA密码,没有人知道密码,此sa登录仅用于管理任务。

    每个用户都有自己的uid和密码,这些SqlServer登录是VB.NET版密码被加密。

    我需要保护数据、模式、存储过程等不被复制到mdf文件中,并安装在另一个SqlServer实例中以攻击mdf文件。

    如何保护.mdf以避免此黑客攻击?。

    谢谢。

    5 回复  |  直到 14 年前
        1
  •  2
  •   egrunin    14 年前

    如果我没听错的话,[1]你是在给人们提供数据文件的本地访问权限(在他们个人电脑的硬盘上),但不想让他们侵入数据甚至查看内部。

    你所能做的任何事都无法抵挡几天的努力 打败它。也就是说:

    1. 如果您的数据价值低于此值,那么您可以做各种各样的事情,所有这些都需要您几天的努力。我们也可以在那里提供建议。

        2
  •  2
  •   Eugene Mayevski 'Callback    14 年前

    如果你泄露数据库文件,你的任务就很难了。一旦你泄露了数据,它就不再是你的了。如果您想阻止客户端计算机的合法用户复制文件,那么您可以做一些事情。如果您担心某些第三方可以复制它们,那么有一种解决方案——将密钥存储在硬件加密设备(USB令牌或智能卡)上。这样密钥就不会离开设备(使用密钥的加密操作在设备上执行)。缺点是需要将令牌与数据库副本一起提供。如果不是问题,则需要执行以下操作:

    1. 创建一个脚本,该脚本将装载卷并启动MS SQL Server(它将使用卷上的DB文件)
        3
  •  1
  •   Dean Harding    14 年前

    See here for more details . 它也有一些严重的性能影响。。。

    SQLServer2008EnterpriseEdition(因此它在您使用的速成版中不起作用)有一个名为 Transparent Data Encryption 真正地 太贵了!

        4
  •  1
  •   saille    14 年前

    RDBMS ,不是桌面数据库。

    我认为您可能错失了一个巨大的机会,即使用一个单一的集中式数据库作为应用程序数据的安全存储库。这就是人们通常如何对数据和代码保持一定程度的控制—在安全服务器上保留一个数据的工作副本,您的用户只能通过应用程序及其身份验证方案间接访问该服务器。

    这被称为 Client Server 模型。

    您不能期望对遗留在您手上的数据拥有任何控制权。把它放在你的服务器上。

        5
  •  1
  •   Kirk Broadhurst    14 年前

    解决这一难题的办法是简单地集中存储数据库——理想情况下,每个人只共享一个数据库。您不应该在每台客户机上安装SQL server数据库。你不仅有安全风险,你也有数据丢失的风险,因为用户不会备份他们的机器。

    遵循这些步骤,你会过得更好。

    • 允许客户端作为有限权限用户(而不是“sa”)连接到数据库
    • 不允许任何客户端访问该服务器