Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
van toepassing op:Azure SQL Managed Instance
In dit artikel leert u hoe u het certificaat migreert voordat u uw met TDE beveiligde SQL Server-database migreert naar Azure SQL Managed Instance met behulp van de systeemeigen hersteloptie.
Wanneer u een database migreert die wordt beveiligd door Transparent Data Encryption (TDE) van SQL Server naar Azure SQL Managed Instance met behulp van de systeemeigen hersteloptie, moet u eerst het bijbehorende certificaat migreren voordat u de database herstelt naar het beheerde SQL-exemplaar.
U kunt ook de volledig beheerde Azure Database Migration Service gebruiken om naadloos een met TDE beveiligde database en het bijbehorende certificaat te migreren.
Dit artikel is gericht op het migreren van databases van SQL Server naar Azure SQL Managed Instance. Als u databases wilt verplaatsen tussen beheerde SQL-exemplaren, raadpleegt u:
Voorwaarden
Voor het voltooien van de stappen in dit artikel hebt u de volgende vereisten nodig:
- Pvk2Pfx opdrachtregelprogramma geïnstalleerd op de on-premises server of andere computer met toegang tot het certificaat dat is geëxporteerd als een bestand. Het Pvk2Pfx-hulpprogramma maakt deel uit van de Enterprise Windows Driver Kit, een zelfstandige opdrachtregelomgeving.
- Windows PowerShell versie 5.0 of hoger geïnstalleerd.
Zorg ervoor dat u aan de volgende vereisten voldoet:
Voer de volgende opdrachten uit in PowerShell om de module te installeren of bij te werken:
Install-Module -Name Az.Sql
Update-Module -Name Az.Sql
Het TDE-certificaat exporteren naar een PFX-bestand
U kunt het certificaat rechtstreeks vanuit het SQL Server-bronexemplaren exporteren of vanuit het certificaatarchief als u het daar bewaart.
Het certificaat exporteren vanuit de broninstantie van de SQL Server
Met de volgende stappen exporteert u het certificaat met behulp van SQL Server Management Studio en converteert u het naar PFX-indeling. De algemene namen TDE_Cert en full_path zijn tijdelijke aanduidingen voor certificaatnamen, bestandsnamen en paden. Vervang ze door de werkelijke namen.
Open een nieuw queryvenster in SSMS en maak verbinding met het SQL Server-bronexemplaar.
Gebruik het volgende script om met TDE beveiligde databases weer te geven en de naam op te halen van de certificaatbeveiliging van de database die moet worden gemigreerd:
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 = 3Voer het volgende script uit om het certificaat te exporteren naar een paar bestanden (.cer en .pvk), zodat de openbare en persoonlijke sleutelgegevens behouden blijven:
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>' )Gebruik de PowerShell-console om certificaatgegevens van een paar nieuw gemaakte bestanden naar een PFX-bestand te kopiëren met behulp van het hulpprogramma 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
Het certificaat exporteren uit een certificaatarchief
Als u het certificaat in het certificaatarchief van de lokale SQL Server-machine bewaart, gebruikt u de volgende stappen om het te exporteren:
Open de PowerShell-console en voer de volgende opdracht uit om de module Certificaten van Microsoft Management Console te openen:
certlmVouw in de MMC-module Certificaten het pad Persoonlijke>certificaten uit om de lijst met certificaten weer te geven.
Klik met de rechtermuisknop op het certificaat en selecteer Exporteren.
Volg de wizard om het certificaat en de privésleutel te exporteren naar een .pfx-bestandsindeling.
Het certificaat uploaden naar Azure SQL Managed Instance met behulp van een Azure PowerShell-cmdlet
Belangrijk
Gebruik alleen een gemigreerd certificaat om de met TDE beveiligde database te herstellen. Kort nadat het herstellen is voltooid, wordt het gemigreerde certificaat vervangen door een andere beveiliging. De nieuwe beveiliging is een door de service beheerd certificaat of een asymmetrische sleutel uit de sleutelkluis, afhankelijk van het type TDE dat u voor het exemplaar hebt ingesteld.
Begin met voorbereidingsstappen in 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>Nadat u alle voorbereidingsstappen hebt voltooid, voert u de volgende opdrachten uit om het met base 64 gecodeerde certificaat te uploaden naar het beheerde doelexemplaren van 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
Het certificaat is nu beschikbaar voor het opgegeven met SQL beheerde exemplaar en u kunt de back-up van de bijbehorende met TDE beveiligde database herstellen.
Notitie
Het geüploade certificaat is niet zichtbaar in de sys.certificates catalogusweergave. Voer de opdracht RESTORE FILELISTONLY uit om te bevestigen dat het certificaat is geüpload.