Obnovení hlavního klíče databáze

platí pro:SQL Server

Tento článek popisuje, jak obnovit hlavní klíč databáze v SQL Server pomocí Transact-SQL. Hlavní klíč databáze šifruje další klíče a certifikáty uvnitř databáze. Pokud je smazán nebo poškozen, SQL Server nemusí být schopen tyto klíče dešifrovat a data zašifrovaná jimi jsou fakticky ztracena. Obnovte hlavní klíč databáze ze zálohy, abyste získali přístup k těmto klíčům.

Limitations

Když obnovíte hlavní klíč databáze, SQL Server dešifruje všechny klíče zašifrované aktuálně aktivním hlavním klíčem databáze a poté je zašifruje obnoveným hlavním klíčem databáze. Tuto náročnou operaci naplánujte v období nízké poptávky. Pokud není aktuální hlavní klíč databáze otevřený nebo jej nelze otevřít, nebo pokud některý z klíčů jím zašifrovaných nelze dešifrovat, operace obnovy selže.

Pokud některá z dešifrací selže, obnovení selže. Můžete použít FORCE možnost ignorovat chyby, ale tato možnost způsobí ztrátu všech dat, která nelze dešifrovat.

Pokud hlavní klíč služby zašifruje hlavní klíč databáze, zašifruje také obnovený hlavní klíč databáze.

Pokud v aktuální databázi není hlavní klíč databáze, vytvoří RESTORE MASTER KEY hlavní klíč databáze. Hlavní klíč služby automaticky nešifruje nový hlavní klíč databáze.

Dovolení

Vyžaduje CONTROL oprávnění k databázi.

Obnovení hlavního klíče databáze

Ukázky kódu v tomto článku používají ukázkovou databázi AdventureWorks2025 nebo AdventureWorksDW2025, kterou si můžete stáhnout z domovské stránky Microsoft SQL Serveru pro ukázky a komunitní projekty .

  1. Načtěte kopii hlavního klíče zálohované databáze buď z fyzického záložního média, nebo z adresáře na místním souborovém systému.

  2. Připojte se k instanci SQL Server, která obsahuje hlavní klíč databáze, který chcete obnovit. K instanci SQL Serveru se můžete připojit pomocí libovolného známého klientského nástroje SQL Serveru, jako je sqlcmd, SQL Server Management Studio (SSMS) nebo rozšíření MSSQL pro Visual Studio Code.

  3. Zkontrolujte a spustěte následující Transact-SQL skript.

    V tomto příkladu:

    • Obnovíte hlavní klíč databáze pro AdventureWorks2025 z C:\Temp\AdventureWorks2025_master_key.

    • Nastavíte nové šifrovací heslo <new-password>. Nastavte tato nastavení tak, aby odpovídala vašemu prostředí.

    Caution

    Nové heslo potřebujete, abyste mohli v budoucnu otevřít hlavní klíč databáze. Ujistěte se, že toto heslo bezpečně a spolehlivě uložíte.

    USE AdventureWorks2025;
    GO
    
    RESTORE MASTER KEY
        FROM FILE = 'C:\Backups\Keys\AdventureWorks2025_master_key'
        DECRYPTION BY PASSWORD = '<password>'
        ENCRYPTION BY PASSWORD = '<new-password>';
    GO