sql >> Databáze >  >> RDS >> Sqlserver

SQL Server Database Backup Encryption

Pro správu zabezpečení dat, která byla zálohována systémem souborů jako záložní soubory databáze, poskytuje SQL Server funkci šifrování záloh. V tomto článku budeme hovořit o možnostech šifrování dostupných na serveru SQL Server pro zálohování databáze. Blíže se podíváme na podrobnosti o použití, výhody a doporučené postupy pro šifrování zálohy databáze SQL Server během procesu zálohování.

Co je šifrování zálohy databáze?

Potřeba udržovat data v bezpečí dramaticky roste. Spolu s daty se musíte ujistit, že jsou zabezpečeny také záložní soubory databáze, zejména soubory na serverovém souborovém systému. Data v nativních záložních souborech SQL Serveru jsou uložena jako prostý text v systému souborů. Můžete je bez námahy přečíst pomocí textového editoru.
V závislosti na typech dat používaných ve vašich tabulkách jsou některá data mnohem snáze čitelná než jiná. Následující obrázek ukazuje záložní soubor otevřený v textovém editoru Poznámkový blok:

Jak vidíte, kód T-SQL je viditelný a snadno čitelný. Jakmile však vytvoříme zálohu se šifrováním, nikdo nebude mít šanci dostat se pod pokličku.

Následující obrázek ukazuje stejný AdventureWorks2014.bak se šifrováním.

Počínaje SQL Serverem 2014 může databázový stroj šifrovat data při vytváření záložního souboru. Při vytváření zálohy můžete zadat šifrovací algoritmus a šifrovač, buď certifikát, nebo asymetrický klíč. Funkce šifrování záloh zlepšuje zabezpečení a funguje v jakékoli doméně, kde lze použít samotný SQL Server.

Co je požadováno?

Chcete-li zašifrovat zálohu databáze, musíte zadat šifrovací algoritmus a šifrovač. Existují dvě podporované možnosti šifrování:

  • Šifrovací algoritmus:AES_128, AES_192, AES_256 a Triple_DES_3Key
  • Šifrovač:Certifikát nebo asymetrický klíč

Pokud omylem ztratíte certifikát nebo asymetrický klíč, už nikdy nebudete mít šanci obnovit záložní soubor. Proto je velmi důležité uchovávat certifikát nebo asymetrický klíč na bezpečném místě.

Výhody šifrování zálohy databáze

  • Pomáhá zabezpečit data.
  • Lze použít na databáze, které jsou zašifrovány pomocí Transparent Data Encryption (TDE).
  • Podporováno pro zálohy vytvořené zálohováním spravovaným SQL Serverem do Microsoft Azure, které poskytuje dodatečné zabezpečení pro zálohy mimo lokalitu.
  • Podporuje četné šifrovací algoritmy až do 256 bitů AES. To vám umožní vybrat algoritmus, který splňuje vaše požadavky.
  • Je možné integrovat šifrovací klíče s poskytovateli Extended Key Management (EKM).

Změny v systémových tabulkách

Při vytváření šifrované zálohy jsou některé informace zaznamenány do MSDB systémová databáze:použitý algoritmus klíče, typ šifrování a otisk šifrování.
Záloha tabulka obsahuje informace pro každou sadu záloh. Sada záloh obsahuje zálohu pro jednu úspěšnou operaci zálohování.
Následující sloupce:algoritmus_klíče , encryptor_thumprint , typ_šifrovače tohoto DMV ukládají informace o tom, zda je záloha zašifrována, o typu šifrovače a otisku šifrovače.

SELECT TOP 5 name, key_algorithm, encryptor_thumbprint, encryptor_typeFROM msdb.dbo.backupset AS backupset with (NOLOCK)WHERE type IN ('D', 'I') AND database_name ='AdventureWorks2014'ORDER BY backupset.backup_start_date před> 

Zde je to, co uvidíte:

Chcete-li získat další informace o tabulce backupset, přečtěte si následující stránku dokumentace MSDN:backupset (Transact-SQL)

backupmediaset tabulka obsahuje informace pro každou sadu záložních médií. Sloupec is_encrypted udává, zda je záloha zašifrována či nikoli. 0 – nešifrováno a 1 – šifrováno. Zpočátku je tato hodnota nastavena na NULL, což označuje nešifrovanou sadu zálohovacích médií.

VYBERTE TOP 5 media_set_id, is_encrypted, is_compressedFROM msdb.dbo.backupmediaset AS mediaset s (NOLOCK)ORDER BY mediaset.media_set_id DESCGO

Sada výsledků:

Metody šifrování zálohy databáze

1. S pomocí dbForge Studio pro SQL Server

Je možné vytvořit šifrování zálohy databáze pomocí SSMS, ale já osobně preferuji dbForge Studio pro SQL Server — výkonné IDE pro správu, administraci, vývoj, reportování dat a analýzu SQL Serveru. Toto IDE je jako švýcarský nůž pro vývojáře databází. Nástroj poskytuje základní funkce, které jsou zabaleny do dobře navrženého a intuitivního GUI. Chcete-li se seznámit s klíčovými funkcemi, podívejte se na úvodní video dbForge Studio pro SQL Server – Přehled (04:03 min):

Jakmile si stáhnete a nainstalujete nástroj, musíte vytvořit připojení k databázi.

Všimněte si, že funkce šifrování záloh je zavedena v SQL Server 2014. SQL Server Express nepodporuje šifrování během zálohování.

1. Jakmile se připojíte k požadované instanci SQL Server, v Průzkumníku databáze , kliknutím na název serveru rozbalte strom serveru.

2. Klikněte pravým tlačítkem na požadovanou databázi, přejděte na Úkoly a poté klikněte na Zálohovat . Zobrazí se dialogové okno Zálohovat databázi.

V části Připojení seznam, zkontrolujte název připojení. Volitelně můžete vybrat jiné připojení ze seznamu.

3. Klepnutím na tlačítko Další přejděte na Možnosti médií .

Možnost šifrování je deaktivována, pokud zvolíte připojení k existující sadě záloh na stránce Možnosti médií v průvodci zálohováním databáze. Vyberte zálohu na novou sadu médií a vymažte všechny stávající sady záloh.
Před zahájením procesu vytvořte certifikát/klíč. Certifikát nebo asymetrický klíč vytvořený před spuštěním průvodce zálohováním databáze bude uveden v rozevíracím seznamu.

Vyberte možnost Zálohovat na novou sadu médií a vymazat všechny existující sady záloh možnost vytvoření nové zálohy. Zadejte název do Název sady médií textové pole a volitelně popište sadu médií v Popis sady médií textové pole.

4. Klepnutím na tlačítko Další pokračujte v části Možnosti zálohování .

Na této stránce vyberte možnost Šifrovat zálohu. Vyberte Algoritmus a Certifikát nebo Asymetrický klíč. Klikněte na Zálohovat . Tento proces v mém případě trvá několik sekund.

2. Použití příkazů Transact-SQL

Využijeme BAKUPOVACÍ DATABÁZI k vytvoření zálohy databáze a PROTOKOLU ZÁLOHY vytvořit záložní soubor transakčního protokolu.

Úplná záloha databáze

Tento typ zálohování zálohuje celou databázi. Zahrnuje část transakčního protokolu, takže po obnovení plné zálohy databáze lze obnovit celou databázi.

Následující kód vytvoří úplnou databázi šifrovanou zálohovat do poskytnutého umístění pomocí zadaného certifikátu a šifrovacího algoritmu.

ZÁLOHOVÁNÍ DATABÁZE AdventureWorks2014TO DISK ='D:\DBMSSQLX64\Backup\AdventureWorks2014.bak'WITH NAME =N'AdventureWorks2014, komprimované, šifrované, úplné', FORMÁT, INIT, PŘESKOČIT, NOREWIND, STATISTIKY 5 =KOMP. ŠIFROVÁNÍ( ALGORITHM =AES_256, CERTIFIKÁT SERVERU =Cert1)GO

Poznámka:Pokud certifikát použitý pro šifrování nebyl nikdy zálohován, zobrazí se po dokončení zálohování následující varování. Ujistěte se, že jste si udělali zálohu certifikátu spolu se soukromým klíčem spojeným s certifikátem:

Upozornění :Certifikát použitý k zašifrování šifrovacího klíče databáze nebyl zálohován. Měli byste okamžitě zazálohovat certifikát a soukromý klíč spojený s certifikátem. Pokud certifikát někdy přestane být dostupný nebo pokud budete muset obnovit nebo připojit databázi na jiném serveru, musíte mít zálohy certifikátu i soukromého klíče, jinak nebudete moci databázi otevřít.

Zálohování diferenciální databáze

Při vytváření tohoto typu zálohy se záloha databáze nebo souboru skládá pouze z částí databáze nebo souboru změněných od poslední úplné zálohy. Tento typ zálohy také obvykle zabírá méně místa než plná záloha.

Následující kód vytvoří diferenciální databázi šifrovanou zálohovat do poskytnutého umístění pomocí zadaného certifikátu a šifrovacího algoritmu.

ZÁLOHOVÁNÍ DATABÁZE AdventureWorks2014TO DISK ='D:\DBMSSQLX64\Backup\AdventureWorks2014_DIFF.bak'WITH NAME =N'AdventureWorks2014, komprimované, šifrované, diferenciální', FORMÁT, INIT, PŘESKOČIT, KOMPONOVAT, NOREDWIND5 DIFERENCIÁL,ŠIFROVÁNÍ( ALGORITHM =AES_256, CERTIFIKÁT SERVERU =Cert1)GO

Záloha protokolu transakcí databáze

Databáze SQL Server obsahuje kromě datových souborů jeden nebo více souborů protokolu transakcí, které zaznamenávají všechny transakce a úpravy databáze provedené každou transakcí. Informace o transakci se shromažďují pouze v databázích, kde je režim obnovy databáze nastaven na plný obnovení nebo hromadně protokolované zotavení.

Následující kód vytvoří protokol transakcí databáze šifrovaný zálohovat do poskytnutého umístění pomocí zadaného certifikátu a šifrovacího algoritmu.

ZÁLOHOVACÍ PROTOKOL AdventureWorks2014TO DISK ='D:\DBMSSQLX64\Backup\AdventureWorks2014_LOG.bak'WITH NAME =N'AdventureWorks2014, komprimovaný, šifrovaný, TLog', FORMÁT, INIT, PŘESKOČIT, STATISTICKÝ FORMÁT =5 AES_256, CERTIFIKÁT SERVERU =Cert1)GO

3. Pomocí PowerShell

SQL Server 2014 umožňuje zálohovat databázi pomocí Windows Powershell. Následující kód vytvoří možnosti šifrování a použije je jako hodnotu parametru v příkazu Backup-SqlDatabase:

$encryptionOption=New-SqlBackupEncryptionOption –Algoritmus Aes256 –EncryptorType ServerCertificate –EncryptorName “Cert1”Backup-SqlDatabase –ServerInstance Server_name –Database “AdventureWorks2014” –D:BackupionDFile_BackupionOWorkO $encryptionOption

Při porovnání výše uvedených přístupů není pochyb o tom, že vytváření šifrovaných záloh databází je poměrně snadný úkol, pokud máte správný nástroj, jako je dbForge Studio pro SQL Server od Devarta.

Další čtení

Můj přítel Pinal Dave – nadšenec do technologie SQL Server, nezávislý konzultant, autor různých knih o SQL Serveru a kurzů Pluralsight napsal skvělý článek, který bych vám doporučil k dalšímu přečtení:SQL SERVER – Praktické použití šifrování záloh P>

  1. SQL Server – chybí NATURAL JOIN / x JOIN y USING (pole)

  2. Počítání počtu spojených řádků v levém spojení

  3. Databáze SQL Server Importers z celého světa kompatibilní s přístupem

  4. Jak vygenerovat celý DDL schématu Oracle (skriptovatelné)?