用于加密sql server数据库的工具

时间:2008-11-26 14:42:14

标签: sql-server encryption

我不希望客户能够备份我的sql server数据库并访问表数据等。

我知道有些产品会对表格中的数据进行加密,并且在我的应用程序中显示时,他们的产品会对其进行解密。

你们知道什么产品?我有什么选择?

(这是一项业务要求,但有些嘿嘿似乎很愚蠢)。

更新

这是针对sql server 2008 express

6 个答案:

答案 0 :(得分:3)

加密数据库中的数据的问题是,只要数据库存在于客户端的计算机上(如您所示,它们正在运行SQL 2008 Express,因此我认为它存在于客户端的台式机或笔记本电脑上)然后他们可以进入数据。他们可以在实例上设置安全性,以便他们具有SA权限,从那里,他们可以获取数据,期间。没有办法解决这个问题。

您需要做的是在数据到达数据库之前对其进行加密:在应用程序中加密数据。在应用程序内部,加密要存储在每个敏感字段中的数据。正如另一张海报所示,您不希望加密ID字段,因为它们用于索引。

答案 1 :(得分:2)

有第三方xp_crypt。它已经存在多年了。 它是一个扩展的存储过程(即DLL)

答案 2 :(得分:0)

SQL Server 2008本机支持数据库加密。查看Transparent Data Encryption (TDE)的文档。

答案 3 :(得分:0)

您可以加密存储过程,这可以保护您的逻辑。

TDE仅适用于企业版。

我找不到它是否支持本机sql加密 - 但你可以通过一点点搜索找到它。但如果确实如此,您可以使用您的应用程序设置数据库主密钥,并将所有解密/加密代码保留在您的应用程序中。

如果它不支持本机加密,您可能希望使用应用程序语言创建/查找自己的加密函数,并锁定代码中的密钥。

答案 4 :(得分:0)

透明数据加密将对磁盘上的数据库进行加密,但在内存中未加密,因此还需要适当的安全性以确保未经授权的用户无法访问该表。由于它是仅限企业版的功能,因此您可以安全地远离它。

SQL Server 2005及更高版本具有内置加密功能 - 查看联机丛书,尤其是第5章 - 加载Adam Machanic的Expert SQL Server 2005开发书(技术上,Lara Rubbelke写了第5章)。

请注意,您只想加密某些列 - 那些您永远不会尝试查找的列,因为加密列对于索引几乎没用。 Adam Machanic的书提出了解决这个问题的方法。

答案 5 :(得分:0)

透明SQL Server加密的另一个解决方案是DbDefence 适用于小于77 MB的数据库。