Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Архивно шифроване на база данни на SQL Server

За да управлява сигурността на данните, които са били архивирани от файловата система като архивни файлове на база данни, SQL Server предоставя функцията за криптиране на архивиране. В тази статия ще говорим за опциите за криптиране, налични в SQL Server за архивиране на база данни. Ще разгледаме по-отблизо подробностите за използването, предимствата и препоръчителните практики за криптиране на архивиране на база данни на SQL Server по време на процеса на архивиране.

Какво е криптиране на резервно копие на базата данни?

Необходимостта от запазване на сигурността на данните нараства драстично. Заедно с данните, трябва да сте сигурни, че вашите архивни файлове на базата данни също са защитени, особено тези на файлова система на сървъра. Данните в собствените архивни файлове на SQL Server се съхраняват като обикновен текст във файловата система. Можете да го прочетете без усилия, като използвате текстов редактор.
В зависимост от типовете данни, използвани във вашите таблици, някои данни са много по-лесни за четене от други. Следната снимка демонстрира архивния файл, отворен в текстовия редактор на Notepad:

Както можете да видите, T-SQL кодът е видим и лесен за четене. Въпреки това, след като създадем резервното копие с криптиране, никой няма да има шанс да влезе под капака.

Следващата снимка демонстрира същия AdventureWorks2014.bak с криптиране.

Започвайки със SQL Server 2014, механизмът на базата данни може да криптира данните, докато създава архивен файл. Можете да посочите алгоритъма за криптиране и криптора, или сертификат, или асиметричен ключ, докато създавате резервно копие. Функцията за криптиране на архивиране подобрява сигурността и работи във всеки домейн, където може да се използва самият SQL Server.

Какво се изисква?

За да криптирате архива на базата данни, трябва да посочите алгоритъм за криптиране и криптор. Има две поддържани опции за криптиране:

  • Алгоритъм за криптиране:AES_128, AES_192, AES_256 и Triple_DES_3Key
  • Шифроване:Сертификат или асиметричен ключ

Ако случайно загубите сертификата или асиметричния ключ, никога няма да имате шанс да възстановите архивния файл. Ето защо е много важно да съхранявате сертификата или асиметричния ключ на безопасно място.

Предимства при криптиране на архивиране на база данни

  • Помага за защита на данните.
  • Може да се приложи към базите данни, които са криптирани с помощта на прозрачно криптиране на данни (TDE).
  • Поддържа се за архивиране, създадено от управлявано от SQL Server архивиране в Microsoft Azure, което осигурява допълнителна сигурност за резервни копия извън сайта.
  • Поддържа множество алгоритми за криптиране до AES 256 бита. Това ви позволява да изберете алгоритъм, който отговаря на вашите изисквания.
  • Възможно е интегриране на ключове за криптиране с доставчици на разширено управление на ключове (EKM).

Промени в системните таблици

Докато създавате криптирания архив, част от информацията се записва в MSDB системна база данни:използваният алгоритъм на ключове, тип криптиране и отпечатък за криптиране.
Резервното копие таблицата съдържа информация за всеки резервен набор. Наборът за архивиране съдържа архива за една успешна операция за архивиране.
Следните колони:key_algorithm , encryptor_thumprint , тип_криптор от този DMV съхранява информация за това дали резервното копие е криптирано, типа на шифратора и отпечатъка на шифратора.

ИЗБЕРЕТЕ ТОП 5 име, key_algorithm, encryptor_thumbprint, encryptor_typeFROM msdb.dbo.backupset КАТО резервно копие с (NOLOCK)WHERE въведете IN ('D', 'I') И database_name ='AdventureWorks2014'ORDER BY DE_SC backupset_backup. предварително> 

Ето какво ще видите:

За да получите повече информация относно таблицата за архивиране, прочетете следната страница с документация на MSDN:backupset (Transact-SQL)

backupmediaset таблицата съдържа информация за всеки набор от резервни носители. Колоната is_encrypted показва дали архивът е криптиран или не. 0 – некриптиран и 1 – криптиран. Първоначално тази стойност е зададена на NULL, което показва некриптиран backupmediaset.

ИЗБЕРЕТЕ ТОП 5 media_set_id, is_encrypted, is_compressedFROM msdb.dbo.backupmediaset КАТО медианабор с (NOLOCK) ORDER BY mediaset.media_set_id DESCGO

Резултатът:

Методи за криптиране на архивиране на база данни

1. С помощта на dbForge Studio за SQL Server

Възможно е да се създаде резервно криптиране на база данни с помощта на SSMS, но аз лично предпочитам bForge Studio за SQL Server — мощна IDE за управление, администриране, разработка, отчитане на данни и анализ на SQL Server. Тази IDE е като швейцарски нож за разработчиците на бази данни. Инструментът предоставя основни функции, които са обвити в добре проектиран и интуитивен GUI. За да се запознаете с основните функции, вижте dbForge Studio за SQL Server – Обзор, уводно видео (04:03 мин.):

След като изтеглите и инсталирате инструмента, трябва да създадете връзката към базата данни.

Обърнете внимание, че функцията за криптиране на архивиране е въведена в SQL Server 2014. SQL Server Express не поддържа криптиране по време на архивиране.

1. След като се свържете с необходим екземпляр на SQL Server, в Database Explorer , щракнете върху името на сървъра, за да разширите дървото на сървъра.

2. Щракнете с десния бутон върху необходимата база данни, посочете Tasks и след това щракнете върху Резервно копие . Появява се диалоговият прозорец Архивиране на база данни.

В Връзка списъчно поле, проверете името на връзката. По желание можете да изберете различна връзка от списъка.

3. Щракнете върху Напред, за да продължите с Опции за мултимедия .

Опцията за криптиране е деактивирана, ако изберете да добавите към съществуваща опция за архивиране на страницата Опции за носител на съветника за архивиране на база данни. Изберете архивиране в нов набор от носители и изтрийте всички съществуващи набори за архивиране.
Създайте сертификата/ключа преди да започнете процеса. Сертификат или асиметричен ключ, създаден преди стартиране на съветника за архивиране на база данни, ще бъде изброен в падащото меню.

Изберете Архивиране в нов набор от носители и изтрийте всички съществуващи набори за архивиране опция за създаване на нов архив. Въведете име в Име на медиен набор текстово поле и, по избор, опишете мултимедийния набор в Описание на мултимедийния набор текстово поле.

4. Щракнете върху Напред, за да продължите с Опции за архивиране .

На тази страница изберете опцията Encrypt Backup. Изберете алгоритъма и сертификата или асиметричния ключ. Щракнете върху Резервно копие . Процесът отнема няколко секунди в моя случай.

2. Използване на Transact-SQL изрази

Ще използваме ББАЗА ДАННИ ЗА АРКУПИРАНЕ изявление за създаване на резервно копие на базата данни и РЕЗЕРВЕН РЕГИСТРАТОР за да създадете архивен файл на регистрационния файл на транзакциите.

Пълно архивиране на базата данни

Този тип архивиране архивира цялата база данни. Той включва част от регистъра на транзакциите, така че цялата база данни да може да бъде възстановена след възстановяване на пълно архивиране на базата данни.

Следният код създава пълна криптирана база данни архивиране на предоставеното място с помощта на посочения сертификат и алгоритъм за криптиране.

РЕЗЕРВНА БАЗА ДАННИ AdventureWorks2014TO DISK ='D:\DBMSSQLX64\Backup\AdventureWorks2014.bak'С ИМЕ =N'AdventureWorks2014, Компресиран, криптиран, пълен', FORMAT, NUNIT, SKIP, SKIP, COMPLOAD, 5 ШИФИРАНЕ( АЛГОРИТЪМ =AES_256, СЕРТИФИКАТ НА СЪРВЪР =Cert1) GO

Забележка:Ако сертификатът, използван за криптиране, никога не е бил архивиран, следното предупреждение се появява, когато архивирането завърши. Уверете се, че сте направили резервно копие на сертификата заедно с частния ключ, свързан със сертификата:

Предупреждение :Сертификатът, използван за криптиране на ключа за криптиране на базата данни, не е архивиран. Трябва незабавно да архивирате сертификата и частния ключ, свързан със сертификата. Ако сертификатът някога стане недостъпен или ако трябва да възстановите или прикачите базата данни на друг сървър, трябва да имате резервни копия както на сертификата, така и на частния ключ, или няма да можете да отворите базата данни.

Архивиране на диференциална база данни

Докато създавате този тип резервно копие, архивът на базата данни или файла се състои само от части от базата данни или файла, променени след последното пълно архивиране. Освен това този тип архивиране обикновено заема по-малко място от пълното архивиране.

Следният код създава диференциална база данни криптирана архивиране на предоставеното място с помощта на посочения сертификат и алгоритъм за криптиране.

РЕЗЕРВНА БАЗА ДАННИ AdventureWorks2014TO DISK ='D:\DBMSSQLX64\Backup\AdventureWorks2014_DIFF.bak'WITH NAME =N'AdventureWorks2014, Compressed, Encrypted, Differential', FORMAT, COMPSTAUN, FORMAT, COMPSTAUN, IN ДИФЕРЕНЦИАЛНО,ШИФРИРАНЕ( АЛГОРИТЪМ =AES_256, СЕРТИФИКАТ НА СЪРВЪР =Cert1) GO

Архивиране на регистъра на транзакциите на базата данни

Базата данни на SQL Server съдържа един или повече регистрационни файлове на транзакциите, в допълнение към файловете с данни, които записват всички транзакции и модификации на базата данни, направени от всяка транзакция. Информацията за транзакциите се събира само в базите данни, където режимът за възстановяване на базата данни е настроен на пълен възстановяване илигрупово регистриране възстановяване.

Следният код създава криптиран регистър на транзакциите на базата данни архивиране на предоставеното място с помощта на посочения сертификат и алгоритъм за криптиране.

РЕЗЕРВЕН РЕГИОНАЛ AdventureWorks2014TO DISK ='D:\DBMSSQLX64\Backup\AdventureWorks2014_LOG.bak'С ИМЕ =N'AdventureWorks2014, Компресиран, шифрован, TLog', COMPAT, INITSTAMPRESSION, ENGLISH, FORMAT, INITSTAMPRESSION =5 AES_256, СЕРТИФИКАТ НА СЪРВЪР =Cert1)GO

3. Използване на PowerShell

SQL Server 2014 ви позволява да архивирате базата данни с помощта на Windows Powershell. Следният код създава опциите за криптиране и го използва като стойност на параметъра в командлета Backup-SqlDatabase:

$encryptionOption=New-SqlBackupEncryptionOption –Algorithm Aes256 –EncryptorType ServerCertificate –EncryptorName “Cert1”Backup-SqlDatabase –ServerInstance Server_name –Database “AdventureWorks2014” –BackupFile “D:\DBMSSQLX64\Backup\AdventureWorks2014_DIFF.bak” –CompressionOption On –EncryptionOption $encryptionOption

Сравнявайки гореспоменатите подходи, няма съмнение, че създаването на резервни копия на криптирани бази данни е доста лесна задача, когато имате правилния инструмент, като dbForge Studio за SQL Server от Devart.

Допълнително четиво

Моят приятел, Пинал Дейв – ентусиаст на технологиите на SQL Server, независим консултант, автор на различни книги за SQL Server и курсове по Pluralsight, написа отлична статия, която бих ви препоръчал да прочетете допълнително:SQL SERVER – Практическа употреба на криптиране на архивиране


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как работи ORIGINAL_DB_NAME() в SQL Server

  2. Как виждате ЦЕЛИЯ текст от ntext или nvarchar(max) в SSMS?

  3. T-SQL Skip Take Stored Procedure

  4. MSDTC на сървъра „сървърът е недостъпен“

  5. Как да направя търсене, чувствително към малки и големи букви в клауза WHERE (използвам SQL Server)?