Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:Azure SQL Managed Instance
V tomto článku se dozvíte, jak migrovat certifikát před migrací databáze SQL Serveru chráněné transparentním šifrováním dat do služby Azure SQL Managed Instance pomocí možnosti nativního obnovení.
Když migrujete databázi chráněnou transparentním šifrováním dat (TDE) z SQL Serveru do spravované instance Azure SQL pomocí možnosti nativního obnovení, musíte před obnovením databáze do spravované instance SQL nejprve migrovat odpovídající certifikát.
Alternativně můžete pomocí plně spravované služby Azure Database Migration Service bezproblémově migrovat databázi chráněnou transparentním šifrováním dat i odpovídající certifikát.
Tento článek se zaměřuje na migraci databází z SQL Serveru do azure SQL Managed Instance. Pokud chcete přesouvat databáze mezi spravovanými instancemi SQL, přečtěte si téma:
Požadavky
K dokončení kroků v tomto článku budete potřebovat následující:
- Nástroj příkazového řádku Pvk2pfx nainstalovaný na místním serveru nebo jiném počítači s přístupem k certifikátu, který se exportuje do souboru. Nástroj Pvk2Pfx je součástí sady Enterprise Windows Driver Kit, samostatné prostředí příkazového řádku.
- Prostředí Windows PowerShell nainstalované ve verzi 5.0 nebo vyšší.
Ujistěte se, že máte následující požadavky:
Spuštěním následujících příkazů v PowerShellu nainstalujte nebo aktualizujte modul:
Install-Module -Name Az.Sql
Update-Module -Name Az.Sql
Exportujte certifikát TDE do souboru .pfx
Certifikát můžete exportovat přímo ze zdrojové instance SQL Serveru nebo z úložiště certifikátů, pokud ho tam uchováváte.
Export certifikátu ze zdrojové instance SQL Serveru
Následující kroky exportují certifikát pomocí aplikace SQL Server Management Studio a převedou ho do formátu .pfx. Obecné názvy TDE_Cert a full_path jsou zástupné symboly pro názvy certifikátů, názvy souborů a cesty. Nahraďte je skutečnými názvy.
V nástroji SSMS otevřete nové okno dotazu a připojte se ke zdrojové instanci SQL Serveru.
Pomocí následujícího skriptu vypíšete databáze chráněné transparentním šifrováním dat a získáte název certifikátu, který chrání šifrování databáze, které se má migrovat:
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 = 3Následujícím skriptem exportujte certifikát do dvojice souborů (.cer a .pvk), které obsahují veřejný a privátní klíč:
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>' )Pomocí konzoly PowerShellu zkopírujte informace o certifikátu z dvojice nově vytvořených souborů do souboru .pfx pomocí nástroje 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
Export certifikátu z úložiště certifikátů
Pokud certifikát ponecháte v úložišti certifikátů místního počítače SQL Serveru, exportujte ho pomocí následujících kroků:
Otevřete konzolu PowerShell a spusťte následující příkaz, abyste otevřeli modul snap-in Certifikáty v konzoli Microsoft Management Console:
certlmV modulu snap-in Certifikáty konzoly MMC rozbalte cestu Osobní>certifikáty a zobrazte seznam certifikátů.
Klikněte pravým tlačítkem na certifikát a vyberte Exportovat.
Podle průvodce exportujte certifikát a privátní klíč do formátu .pfx.
Nahrání certifikátu do azure SQL Managed Instance pomocí rutiny Azure PowerShellu
Důležité
K obnovení databáze chráněné TDE použijte pouze migrovaný certifikát. Krátce po dokončení obnovení se migrovaný certifikát nahradí jinou ochranou. Nová ochrana je certifikát spravovaný službou nebo asymetrický klíč z trezoru klíčů v závislosti na typu transparentního šifrování dat, který jste nastavili v instanci.
Začněte s přípravnými kroky v prostředí 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>Po dokončení všech kroků přípravy spusťte následující příkazy pro nahrání certifikátu zakódovaného base-64 do cílové spravované instance 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
Certifikát je nyní k dispozici pro zadanou spravovanou instanci SQL a můžete obnovit zálohu odpovídající databáze chráněné transparentním šifrováním dat.
Poznámka:
Nahraný certifikát není v sys.certificates zobrazení katalogu viditelný. Pokud chcete potvrdit úspěšné nahrání certifikátu, spusťte příkaz RESTORE FILELISTONLY.