Phản ánh cơ sở dữ liệu với TDE


10

Tôi có yêu cầu phản chiếu một vài cơ sở dữ liệu và cũng sử dụng mã hóa dữ liệu minh bạch (TDE) trên chúng vì dữ liệu của chúng tôi phải được mã hóa trong khi 'nghỉ ngơi'.

Tôi đã thiết lập TDE trên cả hiệu trưởng và gương. Vấn đề tôi gặp phải khi tôi thiết lập phản chiếu của hai cơ sở dữ liệu. Vì tôi đang sử dụng TDE nên tôi không biết cách thiết lập phản chiếu qua gui, vì vậy tôi buộc phải sử dụng t-sql để hoàn thành công việc.

Dưới đây là mã tôi đã sử dụng trên máy chủ được nhân đôi

--Restore the full backup to the mirrored mdf and ldf
OPEN MASTER KEY DECRYPTION BY PASSWORD = '1Password'
RESTORE DATABASE TDE
   FROM disk = '\\SERVERNAME\SQL_Stuff\Backup\TDE_FULL.bak'
      WITH NORECOVERY,
       REPLACE,
       MOVE 'TDE' TO 'E:\TDE.mdf',
      REPLACE,
      MOVE 'TDE_log' TO 'G:\TDE.ldf'
CLOSE MASTER KEY 
GO

--Restore the log backup to the mirrored db
OPEN MASTER KEY DECRYPTION BY PASSWORD = '1Password'
RESTORE LOG TDE
    FROM DISK = '\\SERVERNAME\SQL_Stuff\Backup\TDE_LOG.trn'
    WITH NORECOVERY;
CLOSE MASTER KEY
GO


--Drop/Create Mirroring endpoint on mirror
--DROP ENDPOINT TDE
CREATE ENDPOINT TDE
    STATE = STARTED
    AS TCP ( LISTENER_PORT = 7025 )
    FOR DATABASE_MIRRORING (
        ROLE = PARTNER
        );
GO

--Check the endpoints for the mirror
USE MASTER
SELECT * FROM sys.database_mirroring_endpoints
GO

--Set the principal on the mirrored db
OPEN MASTER KEY DECRYPTION BY PASSWORD = '1Password'
ALTER DATABASE TDE SET PARTNER = 'TCP://PRINCIPAL.DOMAIN.local:7022'
GO
CLOSE MASTER KEY
GO

Dưới đây là mã mà tôi sử dụng trên máy chủ chính.

----------------------Mirroring Section----------------------------------

--Full Backup of Principal
USE TDE
GO
BACKUP DATABASE TDE
TO DISK = '\\SERVERNAME\SQL_Stuff\Backup\TDE_FULL.bak'
    WITH COMPRESSION,
         NAME = 'Full Backup of TDE';
GO

---Log Backup of Principal
USE TDE
GO
BACKUP LOG TDE
TO DISK = '\\SERVERNAME\SQL_Stuff\Backup\TDE_LOG.trn'
    WITH COMPRESSION,
         NAME = 'Log backup of TDE'
GO

--Drop/Create Mirroring endpoint on principal
--DROP ENDPOINT TDE
CREATE ENDPOINT TDE
    STATE = STARTED
    AS TCP ( LISTENER_PORT = 7022 )
    FOR DATABASE_MIRRORING (
        ROLE = PARTNER
        );
GO

--Check the endpoints for the princple
USE master
select * from sys.database_mirroring_endpoints
GO

--Set the mirror db on the principal db
OPEN MASTER KEY DECRYPTION BY PASSWORD = '1Password'
ALTER DATABASE TDE SET PARTNER = 'TCP://MIRROR.DOMAIN.local:7025'
CLOSE MASTER KEY
GO

Tôi thiết lập điểm cuối phản chiếu thứ 1, sau đó là điểm cuối chính. Sau đó, tôi đưa ra ALTER DATABASEtrên gương, sau đó trên hiệu trưởng, nơi tôi nhận được lỗi kết quả:

 Msg 1416, Level 16, State 31, Line 2
Database "TDE" is not configured for database mirroring.

Tôi không biết phải làm gì về việc này. Chiếc gương ở trạng thái "khôi phục", nhưng tôi chắc chắn rằng lỗi đang nói về db ​​chính.

Thanks cho bất kỳ giúp bạn có thể cung cấp cho!

cập nhật cho TDE gốc:

--Create Master Key in Master Database
USE MASTER
GO
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '1Password';
PRINT 'created master key'
go

--Backing up the master key file
USE master;
OPEN MASTER KEY DECRYPTION BY PASSWORD = '1Password';
BACKUP MASTER KEY TO FILE = '\\SERVERNAME\TDE_Master_Key.key' ENCRYPTION BY PASSWORD = '1Password';
GO

--Create Server Certificate in the Master Database encrypted with master key (created above) which would be used to create USER database encryption key.
USE Master
CREATE CERTIFICATE Cert_For_TDE WITH SUBJECT = 'Master_Cert_for_TDE', EXPIRY_DATE = '3500-Jan-01';
Go

--Backing up the server cert file
--USE master;
BACKUP CERTIFICATE Cert_For_TDE TO FILE = '\\SERVERNAME\TDE_Cert.cer' 
    WITH PRIVATE KEY ( FILE = '\\SERVERNAME\TDE_Cert_Key.key', ENCRYPTION BY PASSWORD = '1Password');
GO

--Create user database key
USE TDE
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_256 ENCRYPTION BY SERVER CERTIFICATE Cert_For_TDE;
GO

--Enabling Transparent Database Encryption for the USER Database
USE master;
GO
ALTER DATABASE TDE SET ENCRYPTION ON
GO

Mã trên gương cho TDE:

--restore the backed up key to the mirror
use master
RESTORE MASTER KEY
    FROM FILE = '\\SERVERNAME\TDE_Master_Key.key'
    DECRYPTION BY PASSWORD = '1Password'
    ENCRYPTION BY PASSWORD = '1Password';
GO

--restore the backed up cert to the mirror
USE Master;
OPEN MASTER KEY DECRYPTION BY PASSWORD = '1Password'
CREATE CERTIFICATE Cert_For_TDE    
FROM FILE = '\\SERVERNAME\TDE_Cert.cer' WITH PRIVATE KEY ( FILE = '\\SERVERNAME\TDE_Cert_Key.key', DECRYPTION BY PASSWORD = '1Password');
GO

Update2 sys.database_mirroring_endpoint đã tham gia với sys.tcp_endpoint trên chương trình Hiệu trưởng:

endpoint_id name    principal_id    state_desc  role_desc   connection_auth_desc    certificate_id  encryption_algorithm_desc   port    ip_address
65545   TDE 261 STARTED PARTNER NEGOTIATE   0   RC4 7022    NULL

sys.database_mirroring_endpoint đã tham gia với sys.tcp_endpoint trên chương trình Mirror:

endpoint_id name    principal_id    state_desc  role_desc   connection_auth_desc    certificate_id  encryption_algorithm_desc   port    ip_address
65537   TDE 261 STARTED PARTNER NEGOTIATE   0   RC4 7025    NULL

Là cơ sở dữ liệu trong mô hình phục hồi đầy đủ? Có công việc sao lưu nhật ký nào đang chạy trong khi bạn thực hiện thiết lập không? Bạn đã sao lưu khóa chính trên hiệu trưởng và khôi phục nó trên gương cho TDE?
Robert L Davis

Yup, cả hai dbs đang trong quá trình phục hồi hoàn toàn. Không có công việc nào chạy trên nó trong khi tôi thực hiện sao lưu (chỉ có 1 bảng có 4 hàng) phải mất 2 giây. Tôi đã sao lưu khóa chính và khôi phục nó vào gương. Tôi sẽ đăng mã đó vào ngày mai khi tôi trở lại làm việc.
RateControl

Tôi đã thêm tập lệnh TDE và một số dmv
RateControl

Câu trả lời:


10

Tìm thấy một trang web với một nhận xét về nó.

Tôi đã thêm mã vào ngay sau khi tôi khôi phục khóa và cert

--Mumbojumbo to get mirroring to work
OPEN MASTER KEY DECRYPTION BY PASSWORD = '1Password'
ALTER MASTER KEY ADD ENCRYPTION BY SERVICE MASTER KEY
GO

Nó hoạt động như một bùa mê, có một chút ý nghĩa rằng tôi phải mã hóa khóa chính mà tôi đã khôi phục bằng khóa chính dịch vụ của máy chủ mới. Tôi đoán.

nhún vai


1
Vui mừng bạn đã có thể tự trả lời: D
jcolebrand
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.