SQL Server2019で透過的データ暗号化(TDE)を使ってみた

スポンサーリンク

はじめに

先日、SQL Server2019を使ってデータベースを暗号化する作業を実施しました。備忘録を兼ねて簡単に手順をまとめておきます。

前提

  • SQL Server 2019がインストールされていること
  • SQL Server Management Studio 18がインストールされていること
  • サンプルデータベースを使っていること

手順

データベースを master に切り替える

USE master;
GO

マスターキーを作成する

CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'p@ssw0rd';
go

p@ssw0rd:マスターキーの暗号化に使用するパスワードです。任意に設定して下さい。

証明書を作成する

CREATE CERTIFICATE MyServerCert WITH SUBJECT = 'My DEK Certificate';
go

MyServerCert:証明書の名前です。任意に設定して下さい。
My DEK Certificate:サブジェクト名です。任意に設定して下さい。

証明書と秘密キーのバックアップ

BACKUP CERTIFICATE MyServerCert
 TO FILE = 'C:\temp\MyServerCert'
 WITH PRIVATE KEY
     ( FILE = 'C:\temp\MyPrivKey'
     , ENCRYPTION BY PASSWORD = 'P@ssw0rd' )

MyServerCert:証明書の名前です。「証明書を作成する」で設定した値と合わせて下さい。
MyPrivKey:秘密キーを保存するファイル名です。任意に設定して下さい。
P@ssw0rd:保存する秘密キーを暗号化するためのパスワードです。

暗号化するデータベースに切り替える

USE AdventureWorks2019;
GO

証明書を使用してデータベース暗号化キーを作成する

CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_256
ENCRYPTION BY SERVER CERTIFICATE MyServerCert;
GO

MyServerCert:証明書の名前です。「証明書を作成する」で設定した値と合わせて下さい。

透過的なデータ暗号化を有効化する

ALTER DATABASE AdventureWorks2019
SET ENCRYPTION ON;
GO

証明書と秘密キーのリストア

CREATE MASTER KEY ENCRYPTION
 BY PASSWORD = 'StrongPassword>'
go 
-- サーバー証明書のリストア(インポート)
CREATE CERTIFICATE MyServerCert 
 FROM FILE = 'C:\temp\MyServerCert'
 WITH PRIVATE KEY
     ( FILE = 'C:\temp\MyPrivKey'
     , DECRYPTION BY PASSWORD = 'P@ssw0rd' )

コメント

タイトルとURLをコピーしました