![]() |
+7 (495) 229-0436 | ![]() |
shopadmin@itshop.ru | 119334, г. Москва, ул. Бардина, д. 4, корп. 3 | ![]() |
![]() |
![]() |
|
|
Шифрование резервных копий в SQL Server 201406.02.2014 07:56
alexejs
На этот раз мы поговорим еще об одном улучшении, которое SQL Server 2014 предоставляет в плане создания резервных копий, а именно - о возможности их полноценного шифрования. Возможность защитить резервную копию паролем, чтобы с нее не могли восстановиться неположенные люди, существовала с незапамятных времен, и те, кто достаточно долго имеет дело с SQL Server, должны помнить опцию WITH PASSWORD для команды BACKUP. Однако этот способ не обеспечивал стойкую защиту, и, как отмечалось на mssqltips, Although this does add a level of security if someone really wants to crack the passwords they will find a way, so look for additional ways to secure your data . На практике для защиты резервных копий применялось появившееся в SQL Server 2008 TDE, т.е. база данных прозрачно шифровалась, прежде чем сделать из нее бэкап. Поэтому начиная с SQL Server 2012, параметры PASSWORD и MEDIAPASSWORD не используются при создании резервных копий. Восстановление резервных копий, созданных с применением пароля, остается возможным. Создадим серверный сертификат, который будет использоваться для шифрования бэкапа.
Поскольку никакого ENCRYPTION BY мы не указали, это означает, что сертификат будет защищен мастер-ключом базы, что, собственно, и требуется. Только сертификаты, подписаные мастер-ключом, годны для шифрования бэкапов. Если защитить сертификат, например, паролем (ENCRYPTION BY PASSWORD = 'Оч.сложный пароль'),
Если вы уже делали бэкап с тем же именем в тот же контейнер, вы можете получить при этом ошибку (412) There is currently a lease on the blob and no lease ID was specified in the request… Это происходит потому, что при создании или восстановлении резервной копии Windows Azure выдает SQL Server бесконечную аренду (lease) для блокировки монопольного доступа к блобу. После успешного завершения процесса резервного копирования или восстановления аренда снимается. Но если оно заканчивается неудачей или происходит сбой с сетью или еще что-то пошло не так, аренда остается висеть, препятствуя перезаписи бэкапного блоба или его удаления. Скрипт PowerShell для удаления блоба с активной арендой приводится здесь. Я поступлю проще. Поскольку в содержащем бэкап контейнере больше ничего нет, я удалю и пересоздам контейнер. Если контейнер пересоздается с тем же именем, необходимо иметь в виду, что Windows Azure потребуется пара минут сообразить, что имя освободилось. То же можно выполнить в графическом интерфейсе SSMS:
По выполнении команды Скрипт 2 в заказанном контейнере образуется блоб с бэкапом:
Разумеется, шифрование бэкапов полностью применимо при создании резервной копии БД не в Облако, а в традиционный локальный файл. Для этого первую строчку команды backup database (Скрипт 2) следует изменить на
Однако необходимо иметь в виду, что команда restore database… from url (непосредственное восстановление базы из Azure Storage) может производиться только если данный бэкап тоже производился в Storage. Если бэкап делался на диск, а затем переносился как облачный блоб, то и на сервере назначения его необходимо будет сначала превратить в файл и восстанавливаться как restore database… from disk. Теперь независимо от способа создания резервной копии заходим на SQL Server назначения, в нашем случае установленный на виртуальной машине в Windows Azure. Это можно сделать через удаленный рабочий стол или подключиться к нему из локальной SSMS, как описывалось здесь.
Где 5555 - публичный ТСР-порт в конечной точке облачной виртуалки, соответствующий 1433
предварительно открытому в Windows Firewall облачной виртуалки
Повторяем на нем создание креденции для азуровского сториджа аналогично первой части Скрипт 2:
Напомню, что если этот бэкап делался на диск, а потом загружался в Azure Storage, его необходимо опять представить в виде bak-файла и выполнять restore database AdventureWorks from disk. Кроме бэкапа на сервер назначения требуется передать секрет, при помощи которого он шифровался. Для сертификатов в отличие от асимметричных ключей предусмотрены команды backup/restore certificate. Как и в случае TDE, сертификат бэкапа на исходном экземпляре нужно экспортировать вместе с закрытым ключом, иначе выскочит ошибка:
передаем файлы .cer и .pvk на сервер назначения и создаем на нем сертификат для восстановления из бэкапа. Поскольку виртуалка свежая, предварительно требуется создать мастер-ключ БД master. Пароль, которым он защищается, не имеет ничего общего с паролями мастер-ключа на исходном сервере. Чтобы не отвлекаться на рассказ, какие ключи/сертификаты и как передавать с SQL Server на SQL Server при передаче защищенного контента, рекомендую статью Migrating SQL Server Databases that use Database Master Keys.
После чего повторяем команду восстановления базы и видим, что теперь она завершается успешно:
Ссылки по теме |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
О нас |
Интернет-магазин ITShop.ru предлагает широкий спектр услуг информационных технологий и ПО.
На протяжении многих лет интернет-магазин предлагает товары и услуги, ориентированные на бизнес-пользователей и специалистов по информационным технологиям. Хорошие отзывы постоянных клиентов и высокий уровень специалистов позволяет получить наивысший результат при совместной работе. В нашем магазине вы можете приобрести лицензионное ПО выбрав необходимое из широкого спектра и ассортимента по самым доступным ценам. Наши менеджеры любезно помогут определиться с выбором ПО, которое необходимо именно вам. Также мы проводим учебные курсы. Мы приглашаем к сотрудничеству учебные центры, организаторов семинаров и бизнес-тренингов, преподавателей. Сфера сотрудничества - продвижение бизнес-тренингов и курсов обучения по информационным технологиям.
|
119334, г. Москва, ул. Бардина, д. 4, корп. 3 +7 (495) 229-0436 shopadmin@itshop.ru |
|
© ООО "Interface Ltd." Продаем программное обеспечение с 1990 года |