我在C#
和SQL server 2008
中有一个网络应用程序。出于安全原因,我需要完全加密包含用户个人详细信息的几个表的内容。我的意思是当从SQL server
查看时,这些表应该是不可读的格式,但是当授权用户从应用程序查看这些表详细信息时,他们应该能够查看内容。
我在MSDN上提到了许多与使用对称加密的数据加密相关的文章,但我不确定如何使用它们。请通过建议我可以用来实现这一目标的方法来帮助..
答案 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
这样只有用户才能从表中读取。