所以我在聊天中询问SQL Server 备份文件的安全性。
有人告诉我,如果攻击者可以访问未加密的 .bak 文件,他们就可以访问数据。
那么让我们看看这个场景:
OPEN SYMMETRIC KEY MySymetricKey DECRYPTION
BY CERTIFICATE MyCertificate
注意 - 这里没有密码。
然后我们通过以下方式加密我们的表:
UPDATE tbl1
SET namePAss = ENCRYPTBYKEY(KEY_GUID('MySymetricKey'),name)
GO
现在假设黑客拿到了我的bak
文件。为了查看数据(在他自己的计算机和 sql-server 中),他所要做的就是:
SELECT
convert( NVARCHAR(max), decryptbykey(namePAss))
FROM tbl1
他还能访问数据吗?
就在这里。
MyCertificate
你以某种方式打开了证书,不是吗?可能有几种情况,但其中任何一种都以密码结尾:在最后一个密钥中似乎没有密码,但有一个:服务帐户密码。备份在不同的主机上恢复时,将缺少数据库主密钥的服务主密钥加密,这将使数据无法访问。
请参见加密层次结构
简短的回答是否定的,因为他们需要数据库主密钥及其密码。
这是证书加密的一个很好的概述: http ://www.mssqltips.com/sqlservertip/1319/sql-server-2005-encryption-certificates-overview/
一个用于主密钥: http ://www.mssqltips.com/sqlservertip/1312/managing-sql-server-2005-master-keys-for-encryption/