search
HomeDatabaseMysql TutorialSQLSERVER2012透明加密(TDE )问题

最近需要用到加密功能,找到了TDE,生成证书才发现安装的SQL版本不是企业版,目前似乎只有SQL2008以上的企业版才支持,可以升级吗,试了下自动升级,OK 提示成功,再安装依然提示版本不对select @@version 才发现版本没有变。 重装吧,找到控制面板卸载2012

最近需要用到加密功能,找到了TDE,生成证书才发现安装的SQL版本不是企业版,目前似乎只有SQL2008以上的企业版才支持,可以升级吗,试了下自动升级,OK 提示成功,再安装依然提示版本不对select @@version 才发现版本没有变。

重装吧,找到控制面板卸载2012 ,奇怪竟然卸载不了了。我把sql组建都卸载了 可以数据库依然能用,怪哉,是升级的原因? 

重做系统吧

等待中........

系统做好 先安装SQL2012 企业版

OK 这下可以生成证书了,加密也顺利成功,下面的是加密过程

<span>USE</span><span> master;
</span><span>GO</span>
<span>--</span><span>查看master数据库是否被加密</span><span>
--</span><span>SELECT name,is_master_key_encrypted_by_server FROM sys.databases; --1表示加密</span><span>
--</span><span>每一个数据库只能有一个数据库主密钥</span><span>
--</span><span>删除旧的密钥证书</span>
<span>drop</span><span> CERTIFICATE MyServerCert
</span><span>Drop</span> master <span>Key</span> 
<span>GO</span>
<span>--</span><span>在master数据库中创建一个master key</span>
<span>CREATE</span> MASTER <span>KEY</span> ENCRYPTION <span>BY</span> PASSWORD <span>=</span> <span>'</span><span>P@ssw0rd</span><span>'</span><span>;
</span><span>--</span><span>查看master数据库下的密钥信息</span><span>
--</span><span>SELECT * FROM sys.symmetric_keys</span><span>
--</span><span>创建证书用来保护 数据库加密密钥 (DEK)</span>
<span>CREATE</span> CERTIFICATE MyServerCert <span>WITH</span> SUBJECT <span>=</span> <span>'</span><span>My DEK Certificate</span><span>'</span><span>;

</span><span>--</span><span>IF DB_ID('TDEDemo') IS NOT NULL</span><span>
--</span><span> DROP DATABASE TDEDemo</span>
<span>go</span>
<span>USE</span><span> demo1
</span><span>GO</span> 
<span>--</span><span>创建数据库加密key,使用MyServerCert这个证书加密</span><span>
--</span><span>Drop DATABASE ENCRYPTION KEY</span>
<span>CREATE</span> <span>DATABASE</span> ENCRYPTION <span>KEY</span>
<span>WITH</span> ALGORITHM <span>=</span><span> AES_256
ENCRYPTION </span><span>BY</span><span> SERVER CERTIFICATE MyServerCert
</span><span>go</span>
<span>--</span><span>执行上语句以后出现:</span><span>
/*</span><span>
Warning: The certificate used for encrypting the database encryption key has not been backed up. 
You should immediately back up the certificate and the private key associated with the certificate. 
If the certificate ever becomes unavailable or if you must restore or attach the database on another server, 
you must have backups of both the certificate and the private key or you will not be able to open the database.
</span><span>*/</span>
<span>/*</span><span>
警告: 用于对数据库加密密钥进行加密的证书尚未备份。应当立即备份该证书以及与该证书关联的私钥。
如果该证书不可用,或者您必须在另一台服务器上还原或附加数据库,则必须对该证书和私钥均进行备份,否则将无法打开该数据库。
</span><span>*/</span>

<span>--</span><span>提示你,立刻备份证书;这里备份证书,不比制定加密私钥的对称密钥了.因为他的密钥是通过master数据库的主数据库密钥加密了.</span><span>
--</span><span>相应的,我们备份一下数据库主密钥(master)</span>

<span>USE</span><span> master;
</span><span>GO</span>
<span>--</span><span>如果没有启用主密钥的自动解密功能</span><span>
--</span><span>OPEN MASTER KEY DECRYPTION BY PASSWORD ='P@ssw0rd';</span>
<span>BACKUP</span> MASTER <span>KEY</span> <span>TO</span> <span>FILE</span><span>=</span><span>'</span><span>D:\Cers\master_key</span><span>'</span> ENCRYPTION <span>BY</span> PASSWORD<span>=</span>N<span>'</span><span>P@ssw0rd</span><span>'</span><span>--</span><span>备份主数据库密钥DMK</span>
<span>BACKUP</span> CERTIFICATE MyServerCert <span>TO</span> <span>FILE</span> <span>=</span> <span>'</span><span>D:\Cers\master_cer</span><span>'</span> <span>--</span><span>备份数据库证书</span>
    <span>WITH</span> PRIVATE <span>KEY</span><span> ( 
    </span><span>FILE</span> <span>=</span> <span>'</span><span>D:\Cers\master_cert.pvk</span><span>'</span> , <span>--</span><span>自动生成pvk</span>
    ENCRYPTION <span>BY</span> PASSWORD <span>=</span> <span>'</span><span>P@ssw0rd</span><span>'</span><span> );
</span><span>GO</span> 

<span>--</span><span>生产环境下,设置成单用户在运行加密</span><span>
--</span><span>ALTER DATABASE dbname SET SINGLE_USER WITH ROLLBACK IMMEDIATE;</span>
<span>USE</span><span> master
</span><span>GO</span>
<span>BACKUP</span> <span>DATABASE</span> demo1 <span>TO</span> <span>DISK</span><span>=</span>N<span>'</span><span>D:\demo1.bak</span><span>'</span> 

<span>/*</span><span>
经测试 OFF ON 有时会提示失败
消息 33122,级别 16,状态 1,第 1 行
此命令要求数据库 'TDEDemo' 上有数据库加密扫描。但是,自上次挂起日志备份的加密扫描以来,数据库已经更改。请提取一个日志备份,然后重试该命令。
消息 5069,级别 16,状态 1,第 1 行
ALTER DATABASE 语句失败。
</span><span>*/</span>
<span>--</span><span>查看数据库是否被加密  encryption_state:3 TDE加密了</span>
<span>SELECT</span> <span>DB_NAME</span>(database_id) <span>as</span> dbname,encryption_state <span>FROM</span><span> sys.dm_database_encryption_keys;

</span><span>--</span><span>备份成功以后,开启TDE 加密 </span>
<span>ALTER</span> <span>DATABASE</span> demo1 <span>SET</span> ENCRYPTION <span>ON</span>
<span>--</span><span>关闭TDE 加密</span>
<span>ALTER</span> <span>DATABASE</span> demo1 <span>SET</span> ENCRYPTION <span>OFF</span><span>;

</span><span>--</span><span>设置多用户访问</span><span>
--</span><span>ALTER DATABASE dbname SET MULTI_USER WITH ROLLBACK IMMEDIATE;</span>
<span>GO</span>

奇怪的是 我多次开启TDE ON OFF  后过一阵子会出现下列错误,出现该错误后 无法开启或关闭TDE,重建数据库才好,不知道是什么原因

<span>消息 <span>33122</span>,级别 <span>16</span>,状态 <span>2</span>,第 <span>1</span> 行
此命令要求数据库 'demo1' 上有数据库加密扫描。但是,自上次挂起日志备份的加密扫描以来,数据库已经更改。请提取一个日志备份,然后重试该命令。
消息 <span>5069</span>,级别 <span>16</span>,状态 <span>1</span>,第 <span>1</span> 行
ALTER DATABASE 语句失败。</span>

加密以后是还原的问题,如果服务器出现问题 还原到其他机器是经常用到的,经测试发现还原到非企业版是无法正常使用的,也就是必须是企业版才能支持被TDE保护的数据库(不知道理解的对不对),以下是还原代码

<span>USE</span><span> master;
</span><span>go</span>
<span>--</span><span>查看master数据库是否被加密</span><span>
--</span><span>SELECT name,is_master_key_encrypted_by_server FROM sys.databases; --1表示加密</span><span>
--</span><span>GO</span><span>
--</span><span>如果存在删除master数据库下的主数据库密钥</span><span>
--</span><span>DROP MASTER KEY;</span><span>
/*</span><span>*
--网上有说用该方法恢复主密钥的 但经测试该方法 无法正常的恢复主密钥 不知道是否我的版本问题 测试版本SQL2012 企业版
RESTORE MASTER KEY 
FROM FILE = 'D:\Cers\master_key' 
DECRYPTION BY PASSWORD = 'P@ssw0rd' 
ENCRYPTION BY PASSWORD = 'P@ssw0rd';
*</span><span>*/</span>
<span>CREATE</span> MASTER <span>KEY</span> ENCRYPTION <span>BY</span> PASSWORD <span>=</span> <span>'</span><span>P@ssw0rd</span><span>'</span>;<span>--</span><span>创建主密钥 可以和要恢复的不同 </span>
<span>GO</span>
<span>--</span><span>创建证书</span><span>
--</span><span>drop CERTIFICATE MyServerCert</span>
<span>CREATE</span><span> CERTIFICATE MyServerCert 
    </span><span>FROM</span> <span>FILE</span> <span>=</span> <span>'</span><span>D:\Cers\master_cer</span><span>'</span> 
    <span>WITH</span> PRIVATE <span>KEY</span> (<span>FILE</span> <span>=</span> <span>'</span><span>D:\Cers\master_cert.pvk</span><span>'</span><span>, 
    DECRYPTION </span><span>BY</span> PASSWORD <span>=</span> <span>'</span><span>P@ssw0rd</span><span>'</span>);<span>--</span><span>和要恢复的密钥相同PWD 其他文件要保持路径一致</span>
<span>GO</span> 

<span>--</span><span>-数据库还原操作</span><span>
--</span><span>如果数据库逻辑文件名无法确定可以使用下面的语句进行查看那</span><span>
--</span><span>restore filelistonly from DISK=N'D:\Cers\Demo1.bak'</span><span>
--</span><span>如果物理路径不一致可以使用move语句进行修改</span>
<span>RESTORE</span> <span>DATABASE</span><span> demo
</span><span>FROM</span> <span>DISK</span><span>=</span>N<span>'</span><span>D:\Cers\Demo1.bak</span><span>'</span>
<span>with</span> move <span>'</span><span>demo1</span><span>'</span>     <span>to</span> <span>'</span><span>d:\data\demo.mdf</span><span>'</span><span>
    ,move </span><span>'</span><span>demo1_log</span><span>'</span> <span>to</span> <span>'</span><span>d:\data\demo.ldf</span><span>'</span>
<span>GO</span>

还原到商业版提示如下

SQLSERVER2012透明加密(TDE )问题

有知道解决办法的,欢迎留言 感激不尽

 

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
解决win11透明任务栏黑线问题的方法解决win11透明任务栏黑线问题的方法Dec 22, 2023 pm 10:04 PM

很多朋友在使用translucenttb设置透明任务栏之后,发现win11透明任务栏有一条黑线,观感非常难受,这时候应该怎么解决呢,其实在软件里就能解决。win11透明任务栏有一条黑线:方法一:1、根据用户反馈,可以右键translucenttb,打开设置。2、然后将图示选项的“margin”设置为“1”就可以解决了。方法二:1、如果还是不行,可以右键空白处打开“个性化”2、然后在其中选择系统默认的主题更换即可解决。方法三:1、如果都不行,那么建议大家卸载translucenttb。2、然后更换

Redis作为缓存数据库的数据压缩与加密方案Redis作为缓存数据库的数据压缩与加密方案Jun 21, 2023 am 08:48 AM

Redis作为一款开源的内存缓存数据库,在应用开发中极度广泛。其强大、高效的性能优势,使得其成为了最常用的缓存数据库之一。然而,在某些特殊场景下,由于数据量过大或安全性需要,我们需要对Redis数据进行压缩和加密处理。本文将从Redis的数据压缩和加密两方面入手,探讨Redis作为缓存数据库在实际应用中的数据压缩与加密方案。一、Redis数据压缩方案Re

如何解决Win11任务栏透明度有一条线条的问题?如何解决Win11任务栏透明度有一条线条的问题?Jan 29, 2024 pm 12:12 PM

很多的win11用户们在系统的时候会将自己的任务栏设置成透明的,不过也有不少的用户们在设置完了以后在任务栏上出现一条黑线,那么这是怎么回事?用户们可以利用第三方软件来进行设置就可以了。下面就让本站来为用户们来仔细的介绍一下win11任务栏透明有一条线条的解决方法吧。win11任务栏透明有一条线条的解决方法方法一:1、根据用户反馈,可以右键translucenttb,打开设置。2、然后将图示选项的margin设置为1就可以解决了。2、然后在其中选择系统默认的主题更换即可解决。

如何在 Windows 11 上加密文件和文件夹如何在 Windows 11 上加密文件和文件夹May 03, 2023 pm 06:46 PM

在Windows11上加密文件和文件夹与WindowsBitLocker一样,EFS加密可用于加密您PC上最重要的文件。使用内置加密非常简单,而且触手可及。此外,由于EFS与您的用户帐户相关联,我们将向您展示如何将加密密钥备份到安全位置,这样您就永远不会失去对文件和文件夹的访问权限。注意:要使用EFS,您的PC必须运行Windows11专业版、企业版或教育版。EFS加密在Windows11家庭版上不可用。要加密充满文件的文件夹或单个文件,请使用以下步骤:

让win7任务栏透明图文教程让win7任务栏透明图文教程Jul 20, 2023 am 09:49 AM

今天,一群用户问为什么他们的电脑在重新安装Windows7系统后没有透明效果。事实上,这是你的电脑没有及时更新显卡驱动,调整Windows7Aero主题造成的。您可以通过以下方式进行设置。1.首先,您需要确保您的计算机安装了一个新的显卡驱动您可以使用驱动精灵或360驱动大师在线更新显卡驱动器。。2.面对桌面空白处,右键,选择个性化并打开。3.在这里找到Aero主题,然后选择。正常情况下应该能看到透明玻璃效果。你明白如何让你的win7任务栏透明图形教程吗?不会的同学,赶紧操作吧。

CSS怎么设置透明CSS怎么设置透明Nov 01, 2023 am 10:00 AM

CSS设置透明的方法有opacity属性、rgba颜色值、background-color属性、使用伪元素等。详细介绍:1、opacity属性,通过设置元素的opacity属性来实现透明效果,该属性的取值范围为0到1,0表示完全透明,1表示完全不透明;2、rgba颜色值,通过设置元素的背景颜色或文字颜色为rgba颜色值来实现透明效果,rgba颜色值由红、绿、蓝和透明度等等。

PHP实现SHA加密技术PHP实现SHA加密技术Jun 18, 2023 pm 02:51 PM

SHA(SecureHashAlgorithm)加密技术是一种常用的安全加密算法。在PHP开发中,SHA加密技术通常用于加密账户密码以及保护敏感数据。本文将介绍如何在PHP中实现SHA加密技术。SHA算法简介SHA算法是一种信息摘要算法,通常用于数据的完整性保护和身份验证。SHA算法的主要作用是将任意长度的消息转换为一个固定长度的消息摘要(即哈希值),通

windows10家庭版如何加密文件夹windows10家庭版如何加密文件夹Jul 12, 2023 pm 08:33 PM

windows10家庭版如何加密文件夹呢,加密文件夹这个功能一般客户没有使用,但是如果想要设定的话也是可行的,首先在想要加密的文件夹中右键属性进到高级,然后选择缩小加密属性,加密内容维护数据,下面就是具体的windows10家庭版如何加密文件夹方式介绍,大家如果想要学会的话就接着往下看。windows10家庭版如何加密文件夹1.最先,先找到想要加密的文件夹,然后用鼠标右键文件夹,在弹出的菜单中选择底部的“属性”选项,点击查看;2.随后,将打开文件的属性窗口,点击窗口里的“高级”按键进到;3.接着

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
1 months agoBy尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.

SublimeText3 Linux new version

SublimeText3 Linux new version

SublimeText3 Linux latest version

VSCode Windows 64-bit Download

VSCode Windows 64-bit Download

A free and powerful IDE editor launched by Microsoft

Atom editor mac version download

Atom editor mac version download

The most popular open source editor

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)