出于安全原因,如何加密Sql Server 2008表?

时间:2013-11-29 08:09:16

标签: c# sql-server-2008 encryption

我在C#SQL server 2008中有一个网络应用程序。出于安全原因,我需要完全加密包含用户个人详细信息的几个表的内容。我的意思是当从SQL server查看时,这些表应该是不可读的格式,但是当授权用户从应用程序查看这些表详细信息时,他们应该能够查看内容。

我在MSDN上提到了许多与使用对称加密的数据加密相关的文章,但我不确定如何使用它们。请通过建议我可以用来实现这一目标的方法来帮助..

2 个答案:

答案 0 :(得分:2)

保护数据的最佳方法是拒绝直接访问表。使用视图,SP和函数(可能是触发器)来访问和操作系统中的数据。这是使用SQL DB(独立于引擎)的最佳实践 但是如果你想继续使用你描述的原始概念,我建议使用Column Encryption。阅读SQL Server Encryption文章也是一个很好的起点。

答案 1 :(得分:2)

我不确定表加密是否是您提到的用例的正确解决方案。

首先,无法加密表格。您可以加密整个数据库或列。

在你的情况下,我会选择列级加密。

可以在此处找到一个很棒的教程: http://www.mssqltips.com/sqlservertip/2431/sql-server-column-level-encryption-example-using-symmetric-keys/

如果用户无法查看特定表的内容,您还应该在该表上设置适当的权限。

GRANT SELECT ON Customers TO UserName

这样只有用户才能从表中读取。