Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: Управляемый экземпляр SQL Azure
В этой статье вы узнаете, как перенести сертификат перед переносом базы данных SQL Server, защищенной TDE, в Управляемый экземпляр SQL в Azure, используя встроенную функцию восстановления.
При переносе базы данных, защищенной прозрачным шифрованием данных (TDE) из SQL Server в Управляемый экземпляр SQL Azure с помощью собственного параметра восстановления, необходимо сначала перенести соответствующий сертификат перед восстановлением базы данных в управляемый экземпляр SQL.
Кроме того, можно использовать полностью управляемую службу Azure Database Migration Service , чтобы легко перенести базу данных, защищенную TDE, и соответствующий сертификат.
В этой статье рассматривается перенос баз данных из SQL Server в Управляемый экземпляр SQL Azure. Сведения о перемещении баз данных между управляемыми экземплярами SQL см. в статье:
- Резервные копии только для копирования
- Точечное восстановление
- Копирование или перемещение базы данных
Предварительные требования
Чтобы выполнить действия, описанные в этой статье, необходимо следующее.
- Средство командной строкиPvk2Pfx, установленное на локальном сервере или другом компьютере с доступом к сертификату, экспортированному как файл. Средство Pvk2Pfx является частью набора драйверов Windows Enterprise, изолированной среды командной строки.
- Windows PowerShell версии 5.0 или более поздней.
Убедитесь, что у вас есть следующие предварительные требования:
Выполните следующие команды в PowerShell, чтобы установить или обновить модуль:
Install-Module -Name Az.Sql
Update-Module -Name Az.Sql
Экспорт сертификата TDE в PFX-файл
Вы можете экспортировать сертификат непосредственно из исходного экземпляра SQL Server или из хранилища сертификатов, если вы храните его там.
Экспорт сертификата из исходного экземпляра SQL Server
Следующие шаги экспортируют сертификат с помощью SQL Server Management Studio и преобразуют его в PFX-формат. Универсальные имена TDE_Cert и full_path являются заполнителями для имен сертификатов, имен файлов и путей. Замените их фактическими именами.
В среде SSMS откройте новое окно запроса и подключитесь к исходному экземпляру SQL Server.
Используйте следующий сценарий, чтобы перечислить защищенные TDE базы данных и получите имя сертификата, защищающего шифрование базы данных, которые подлежат миграции.
USE master GO SELECT db.name as [database_name], cer.name as [certificate_name] FROM sys.dm_database_encryption_keys dek LEFT JOIN sys.certificates cer ON dek.encryptor_thumbprint = cer.thumbprint INNER JOIN sys.databases db ON dek.database_id = db.database_id WHERE dek.encryption_state = 3Выполните следующее действие, чтобы экспортировать сертификат в пару файлов (.cer и .pvk), сохраняя данные открытого и закрытого ключа.
USE master GO BACKUP CERTIFICATE TDE_Cert TO FILE = 'c:\full_path\TDE_Cert.cer' WITH PRIVATE KEY ( FILE = 'c:\full_path\TDE_Cert.pvk', ENCRYPTION BY PASSWORD = '<SomeStrongPassword>' )Используйте консоль PowerShell для копирования сведений о сертификате из пары недавно созданных файлов в PFX-файл с помощью средства Pvk2Pfx:
.\pvk2pfx -pvk c:/full_path/TDE_Cert.pvk -pi "<SomeStrongPassword>" -spc c:/full_path/TDE_Cert.cer -pfx c:/full_path/TDE_Cert.pfx
Экспорт сертификата из хранилища сертификатов
Если сертификат хранится в хранилище сертификатов локального компьютера SQL Server, выполните следующие действия, чтобы экспортировать его:
Откройте консоль PowerShell и выполните следующую команду, чтобы открыть оснастку "Сертификаты" консоли управления Майкрософт:
certlmВ оснастке MMC Сертификаты разверните путь Личные>Сертификаты , чтобы просмотреть список сертификатов.
Щелкните правой кнопкой мыши сертификат и выберите "Экспорт".
Следуйте инструкциям мастера по экспорту сертификата и закрытого ключа в формате .pfx.
Отправка сертификата в Управляемый экземпляр SQL Azure с помощью командлета Azure PowerShell
Внимание
Используйте перенесенный сертификат только для восстановления защищенной TDE базы данных. Сразу после завершения восстановления перенесенный сертификат заменяется новым механизмом защиты. Новый защитный элемент — это сертификат, управляемый службой, или асимметричный ключ из хранилища ключей в зависимости от типа TDE, установленного для экземпляра.
Начните с шагов подготовки в PowerShell.
# import the module into the PowerShell session Import-Module Az # connect to Azure with an interactive dialog for sign-in Connect-AzAccount # list subscriptions available and copy id of the subscription target the managed instance belongs to Get-AzSubscription # set subscription for the session Select-AzSubscription <subscriptionId>После выполнения всех шагов подготовки выполните следующие команды, чтобы отправить сертификат в кодировке Base-64 в целевой управляемый экземпляр SQL:
# If you are using PowerShell 6.0 or higher, run this command: $fileContentBytes = Get-Content 'C:/full_path/TDE_Cert.pfx' -AsByteStream # If you are using PowerShell 5.x, uncomment and run this command instead of the one above: # $fileContentBytes = Get-Content 'C:/full_path/TDE_Cert.pfx' -Encoding Byte $base64EncodedCert = [System.Convert]::ToBase64String($fileContentBytes) $securePrivateBlob = $base64EncodedCert | ConvertTo-SecureString -AsPlainText -Force $password = "<password>" $securePassword = $password | ConvertTo-SecureString -AsPlainText -Force Add-AzSqlManagedInstanceTransparentDataEncryptionCertificate -ResourceGroupName "<resourceGroupName>" ` -ManagedInstanceName "<managedInstanceName>" -PrivateBlob $securePrivateBlob -Password $securePassword
Сертификат теперь доступен для указанного управляемого экземпляра SQL, и вы можете восстановить резервную копию соответствующей базы данных, защищенной TDE.
Примечание.
Отправленный сертификат не отображается в представлении sys.certificates каталога. Чтобы подтвердить успешную отправку сертификата, выполните команду RESTORE FILELISTONLY .