如何使用 TDE 启用在 SQL 上支持多个主数据库密钥 DEK
How to back multiple master database key DEK on SQL with TDE Enable
我有一个包含多个数据库的 SQL 实例。他们每个人都经过 TDE 加密。
我知道所有数据库都使用相同的服务主密钥 SMK 来加密 tempdb。我已经使用以下方法备份了 SMK:
BACKUP SERVICE MASTER KEY
TO FILE = 'tmp-path.key'
ENCRYPTION BY PASSWORD = 'temp-password';
现在,如何备份独特的数据库主密钥 DMK?每个数据库都使用不同的数据库,但是 SQL 语句不允许指定备份哪个。接下来是我运行ning.
的命令
BACKUP MASTER KEY
TO FILE = 'tmep-path.key'
ENCRYPTION BY PASSWORD = 'temp-passowrd'
我认为:
use [specific-db];
GO
它会备份一个特定的,但命令不会运行。您需要在 master 上,才能 运行 命令。
谢谢
TDE在SQL服务器的配置方式如下:
- 在 master 数据库中创建主密钥
- 使用主密钥创建证书
- 使用证书创建数据库加密密钥
您只需要 to/can 备份两件事:
主加密密钥 - 您在问题中显示的脚本可以做到这一点。
BACKUP MASTER KEY
TO FILE = 'tmep-path.key'
ENCRYPTION BY PASSWORD = 'temp-passowrd'
证书 - 您可以为每个要加密的数据库创建一个单独的证书,也可以创建一个证书来加密所有数据库,您将按如下方式创建和备份证书:
-- Create Certificate
USE Master;
GO
CREATE CERTIFICATE TDE_MyDB_Cert
WITH SUBJECT = 'My TDE Certificate for MyDB user database'
GO
此证书受服务主密钥保护。
-- Encrypt Database using the Certificate
USE [MyDB]
GO
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_128
ENCRYPTION BY SERVER CERTIFICATE TDE_MyDB_Cert
GO
现在您需要使用数据库的私钥备份证书,您将执行以下操作:
USE master;
GO
BACKUP CERTIFICATE TDE_MyDB_Cert
TO FILE = 'C:\TDE_MyDB_Cert_File.cer'
WITH PRIVATE KEY (FILE = 'C:\TDE_MyDB_Cert_PKey.pvk' ,
ENCRYPTION BY PASSWORD = 'S0M34tR0nGP@$$w)rd' )
GO
- TDE_MyDB_Cert_File.cer是证书备份
- TDE_MyDB_Cert_PKey.pvk 是数据库私钥的备份
我有一个包含多个数据库的 SQL 实例。他们每个人都经过 TDE 加密。
我知道所有数据库都使用相同的服务主密钥 SMK 来加密 tempdb。我已经使用以下方法备份了 SMK:
BACKUP SERVICE MASTER KEY
TO FILE = 'tmp-path.key'
ENCRYPTION BY PASSWORD = 'temp-password';
现在,如何备份独特的数据库主密钥 DMK?每个数据库都使用不同的数据库,但是 SQL 语句不允许指定备份哪个。接下来是我运行ning.
的命令BACKUP MASTER KEY
TO FILE = 'tmep-path.key'
ENCRYPTION BY PASSWORD = 'temp-passowrd'
我认为:
use [specific-db];
GO
它会备份一个特定的,但命令不会运行。您需要在 master 上,才能 运行 命令。
谢谢
TDE在SQL服务器的配置方式如下:
- 在 master 数据库中创建主密钥
- 使用主密钥创建证书
- 使用证书创建数据库加密密钥
您只需要 to/can 备份两件事:
主加密密钥 - 您在问题中显示的脚本可以做到这一点。
BACKUP MASTER KEY TO FILE = 'tmep-path.key' ENCRYPTION BY PASSWORD = 'temp-passowrd'
证书 - 您可以为每个要加密的数据库创建一个单独的证书,也可以创建一个证书来加密所有数据库,您将按如下方式创建和备份证书:
-- Create Certificate USE Master; GO CREATE CERTIFICATE TDE_MyDB_Cert WITH SUBJECT = 'My TDE Certificate for MyDB user database' GO
此证书受服务主密钥保护。
-- Encrypt Database using the Certificate
USE [MyDB]
GO
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_128
ENCRYPTION BY SERVER CERTIFICATE TDE_MyDB_Cert
GO
现在您需要使用数据库的私钥备份证书,您将执行以下操作:
USE master;
GO
BACKUP CERTIFICATE TDE_MyDB_Cert
TO FILE = 'C:\TDE_MyDB_Cert_File.cer'
WITH PRIVATE KEY (FILE = 'C:\TDE_MyDB_Cert_PKey.pvk' ,
ENCRYPTION BY PASSWORD = 'S0M34tR0nGP@$$w)rd' )
GO
- TDE_MyDB_Cert_File.cer是证书备份
- TDE_MyDB_Cert_PKey.pvk 是数据库私钥的备份