我需要加密数据库中的多个列。
我是为每列创建一个证书和一个对称密钥,还是为每列创建一个证书和一个对称密钥。
最佳做法是什么?
答案 0 :(得分:1)
数据来自哪里?如果您有应用程序,尤其是基于Web的应用程序,则应在传输数据之前对其进行加密。
答案 1 :(得分:0)
您是否考虑过使用SQL Server的Transparent Data Encryption (TDE)?
答案 2 :(得分:0)
根据我使用MS SQL 2008单元级加密的经验,您需要为数据库设置主密钥,为数据库创建证书,并根据该证书创建用于加密单元级数据的对称密钥
要加密数据的列必须是VARBINARY类型之一(或其他两个:我相信VARCHAR和NVARCHAR,但我不确定)。还有一种在这些列中插入/更新数据的特定方法,以及从这些列中读取数据。
我们目前在VARBINARY(256)列中存储了以这种方式加密的一些敏感信息列,以及我们数据库顶部的TDE。
更多信息和有用的教程可以在这里找到:
http://www.sqlservergeeks.com/articles/sql-server-bi/19/cell-level-encryption-in-sql-server http://blogs.technet.com/b/keithcombs/archive/2005/11/24/415079.aspx