SQL 2005安全性最佳实践

时间:2011-08-17 18:45:04

标签: database sql-server-2005 encryption

加密SQL 2005数据库的最佳方法是什么?

我已经找到了关于SQL 2008的内容,我已经看过如何在SQL 2005中进行列加密 - 但是因为你需要创建一个函数或一个视图/存储,所以访问表值似乎更加困难程序。

我还尝试通过使用Windows加密(通过证书)来加密保存数据库文件的文件夹来执行文件级安全性,但SQL Server Management Studio给了我权限错误(即使在我赋予它权限之后)。

我需要在我们的服务器上保护客户端数据,我需要以不会太慢减慢服务器速度的方式来实现,但我知道由于加密带来的额外层,这是不可避免的。

我错过了什么,还是我错了?请指教。

2 个答案:

答案 0 :(得分:1)

升级到SQL Server 2008并使用Transparent Database Encryption。与SQL Server 2005的列级加密不同,顾名思义,2008 TDE是透明的。不需要更改应用程序。此外,数据是可搜索的,这一点总是令人满意的,但很难通过列加密或客户端加密来实现。

文件级加密实际上不适用于SQL Server。但是,BitLocker可以与SQL Server一起使用,因此使用BitLocker加密整个卷是另一种可行的选择。

答案 1 :(得分:0)

如果您不想减慢服务器速度,可以使用客户端动态加密和解密数据以进行处理。以序列化和/或加密方式将数据存储在数据库中。网上有很多这样的例子。

为您的数据创建一个包装器,如下所示:

Wrap(
 Zip (
  Base64 Encode (
     Encrypt (
       Serialize(
          DATA
       )
     )
  )
 )
)

然后,

StoreInDB(
    WrappedData
)