在从一列获取数据时,Sql是否有任何在插入和解密时加密的属性?

时间:2012-11-02 05:22:10

标签: sql-server sql-server-2008

我想知道是否有任何属性或任何方式我想加密我的表的一列,所以每当我插入或更新表中的任何行时,列自动加密该数据,同时选择它解密和数据并获取该列中的值。

2 个答案:

答案 0 :(得分:0)

试试这个:

IF NOT EXISTS(select * from sys.certificates where name='EncryptTestCert')
CREATE CERTIFICATE EncryptTestCert
WITH SUBJECT = 'xyz007'

IF NOT EXISTS(select * from sys.symmetric_keys where name='TestTableKey') 
CREATE SYMMETRIC KEY TestTableKey
WITH ALGORITHM = TRIPLE_DES ENCRYPTION
BY CERTIFICATE EncryptTestCert

现在加密

ENCRYPTBYKEY(KEY_GUID('TestTableKey'),@string)

对于Decrypt

DECRYPTBYKEY(@string)

答案 1 :(得分:0)

您正在描述Transparent Database Encryption。这样可以在运行时透明地加密磁盘上的数据,无需对应用程序进行任何更改。它在SQL Server 2008中可用,但需要Enterprise Edition。