2011-08-17 77 views
0

什么是加密SQL 2005数据库的最佳方式?SQL 2005安全最佳实践

我已经发现了有关SQL 2008的内容,并且我已经看到了如何在SQL 2005中执行列加密 - 但是访问表值的操作似乎更加困难,因为您需要创建一个函数或视图/存储过程。

我也尝试通过使用Windows加密(通过证书)来加密文件夹,其中包含数据库文件,但随后SQL Server Management Studio在权限上给我提供了错误(即使授予了权限后) 。

我需要在我们的服务器上保护客户端数据,我需要以不会让服务器速度过慢的方式来完成,但我知道这是不可避免的,因为加密带来的额外层数。

我错过了什么,或者我错了吗?请指教。

回答

1

升级到SQL Server 2008,并使用Transparent Database Encryption。与SQL Server 2005的列级加密不同,2008 TDE正如其名称所暗示的那样是透明的。不需要更改应用程序。此外,数据是可搜索的,这是始终可取的,但是使用列加密或客户端加密很难实现。

文件级加密不能真正与SQL Server一起使用。但是,BitLocker可以与SQL Server一起使用,因此使用BitLocker加密整个卷是另一种可行的选择。

+0

升级到2008年是一个明显的答案,如果可以的话,我会这样做。 TDE将是理想的,但该项目没有预算更新到2008年。另一方面,我将调查BitLocker并了解我能做些什么。 – alexpwalsh

0

如果您不想让服务器变慢,您可以使用客户端即时加密和解密数据来处理它。以序列化和/或加密方式将数据存储在数据库中。网上有很多这种东西的例子。

为您的数据创建一个包装,像这样:

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

然后,

StoreInDB(
    WrappedData 
)