我需要镜像一些数据库,并在它们上使用透明数据加密 (TDE),因为我们的数据必须在“处于静止状态”时被加密。
我已经在主体和镜子上设置了TDE。当我设置两个数据库的镜像时,我遇到的问题就起了作用。由于我使用的是TDE,所以我不知道通过gui设置镜像的方法,所以我不得不使用TDE来完成工作。
下面是我在镜像服务器上使用的代码
--Restore the full backup to the mirrored mdf and ldf
OPEN MASTER KEY DECRYPTION BY PASSWORD = '1Password'
RESTORE DATABASE TDE
我一直在研究如何在SQL Server 2014环境中使用TDE,并提出了一些问题。我认为我对最初实现TDE的众多“如何-to”有相当扎实的掌握。我找不到的一件事是,如果将DB还原到另一个实例,那么DB处于什么状态。
例如,我在一个实例上加密一个DB,然后在创建主密钥和TDE证书之后将它恢复到另一个实例,并在实例B上使用以下命令:
/* Create key in master on second server */
USE master
GO
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'password'
/* Re-cr
TDE通过将文件还原到另一台服务器来防止对数据的未经授权访问,因为它需要原始加密证书和主密钥。
如果我使用TDE对数据库应用了表级加密,并且通过适当的身份验证从windows应用程序访问数据库。考虑到入侵者正在尝试某种注入技术,我的问题是,他是接收原始数据还是加密数据?或者我们可以使用TDE as an anti-injection technique吗?来自我的应用程序的查询可能如下所示:
Dim myQuery="Select * from myTable where some_id='" & txtUserId.Text & "'
我浏览了这个链接:是它,它只加密数据库,那么表中的列呢?
我使用的语法是
USE master;
GO
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<UseStrongPasswordHere>';
go
CREATE CERTIFICATE MyServerCert WITH SUBJECT = 'My DEK Certificate';
go
USE AdventureWorks2012;
GO
CR
我正在尝试恢复数据库的备份,它启用了透明的数据加密。我已经验证了备份文件中的证书拇指指纹与主控数据库中的TDE证书相同。
📷
TDE证书:
📷
但是,由于错误:
,恢复失败了
📷
它正在申请旧的证书。注意,不久前我们更改了TDE证书,使用alter命令对数据库主密钥进行了新证书的加密:
USE [db];
GO
ALTER DATABASE ENCRYPTION KEY
ENCRYPTION BY SERVER CERTIFICATE [New_Certificate];
GO
备份时,旧证书仍在主控数据库中,并在一段时间后被删除。
这看起来像个窃听器。
有什么解释和建议吗?
版本: Micr
我正试图使我的头脑对MSSQL加密。
我按照以下步骤对数据库进行加密:
1)在主数据库上创建主键:
USE master
GO
CREATE MASTER KEY ENCRYPTION
BY PASSWORD='thepbpass';
GO
2)创建证书:
CREATE CERTIFICATE mycert
WITH SUBJECT='mydb DEK';
GO
3)将证书与数据库联系起来:
USE mydb
GO
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_128
ENCRYPTION BY SERV
当我执行Alter database <DB_Name> set encryption on;时,Error.log中出现了这样的错误消息,encryption_state保留了2 (Encryption in progress)。DB只有很少的记录,因为它只是测试目的。
在执行加密之前,没有错误地创建了DMK、Server证书、DEK。
此外,我执行Select * from msdb.dbo.suspect_pages;检查一些数据是否已损坏,但没有数据被破坏。
如何完成数据库加密?如果你能给点提示我很感激。谢谢,