sql >> Database teknologi >  >> RDS >> Sqlserver

SQL Server 2008 Open Master Key fejl ved fysisk serverskifte

Databasehovednøglen krypteres ved hjælp af serverhovednøglen, som er specifik for den maskine, hvor SQL Server er installeret. Når du flytter databasen til en anden server, mister du muligheden for automatisk at dekryptere og åbne databasens hovednøgle, fordi den lokale servernøgle højst sandsynligt vil være anderledes. Hvis du ikke kan dekryptere databasens hovednøgle, kan du ikke dekryptere noget andet, der afhænger af det (certifikater, symmetriske nøgler osv.).

Grundlæggende vil du genkryptere databasens hovednøgle mod den nye servernøgle, hvilket kan gøres med dette script (ved hjælp af administratorrettigheder):

-- Reset database master key for server (if database was restored from backups on another server) OPEN MASTER KEY DECRYPTION BY PASSWORD = '---your database master key password---' ALTER MASTER KEY ADD ENCRYPTION BY SERVICE MASTER KEY GO

Bemærk, at når du opretter en database-hovednøgle, bør du også altid angive en adgangskode, så du kan åbne nøglen ved hjælp af adgangskoden i det scenarie, hvor tjenestens hovednøgle ikke kan bruges - forhåbentlig har du den adgangskode gemt et sted!

Alternativt kan du gendanne en sikkerhedskopi af databasens hovednøgle - men du har brug for en, der er oprettet til målserveren, ikke kildeserveren.

Hvis du ikke har fået enten en backup eller en adgangskode, så er jeg ikke sikker på, at du vil være i stand til at gendanne de krypterede data på den nye server, da du bliver nødt til at droppe og genskabe databasens hovednøgle med en ny adgangskode, som vil dræbe alle afhængige nøgler og data.



  1. MySQL bruger ikke indekser (Using filesort) ved brug af ORDER BY

  2. Hvad er forskellen mellem PLSQL Bind-variabler og Host-variabler

  3. gyldig UUID er ikke et gyldigt UUID

  4. Brug af en variabel til tabelnavn i 'Fra'-sætning i SQL Server 2008