Sdílet prostřednictvím


Přesun databáze chráněné transparentním šifrováním dat na jiný SQL Server

platí pro:SQL Server

Tento článek popisuje, jak chránit databázi pomocí transparentního šifrování dat (TDE) a pak přesunout databázi do jiné instance SQL Serveru pomocí aplikace SQL Server Management Studio nebo Transact-SQL. TDE provádí šifrování a dešifrování datových a protokolových souborů v reálném čase. Šifrování používá šifrovací klíč databáze (DEK), který je uložený ve spouštěcím záznamu databáze pro zajištění dostupnosti během obnovení. Klíč DEK je symetrický klíč zabezpečený pomocí certifikátu uloženého v master databázi serveru nebo asymetrického klíče chráněného modulem EKM.

Omezení

  • Při přesunu databáze chráněné transparentním šifrováním dat musíte také přesunout certifikát nebo asymetrický klíč, který se používá k otevření klíče DEK. Certifikát nebo asymetrický klíč musí být nainstalován v master databázi cílového serveru, aby sql Server měl přístup k souborům databáze. Další informace naleznete v tématu transparentní šifrování dat (TDE).

  • Abyste mohli certifikát obnovit, musíte zachovat kopie souboru certifikátu i souboru privátního klíče. Heslo pro privátní klíč nemusí být stejné jako heslo hlavního klíče databáze.

  • SQL Server ukládá soubory vytvořené tady ve výchozím nastavení v C:\Program Files\Microsoft SQL Server\MSSQL<xx>.MSSQLSERVER\MSSQL\DATA, kde <xx> je číslo verze.

Dovolení

  • K vytvoření hlavního klíče databáze vyžaduje CONTROL DATABASE oprávnění k databázi master.

  • K vytvoření certifikátu, který chrání klíč DEK, vyžaduje CREATE CERTIFICATE oprávnění k databázi master.

  • Vyžaduje CONTROL DATABASE oprávnění k šifrované databázi a VIEW DEFINITION oprávnění k certifikátu nebo asymetrického klíče, který se používá k šifrování šifrovacího klíče databáze.

Vytvoření databáze chráněné transparentním šifrováním dat

Následující postupy ukazují, jak vytvořit databázi chráněnou transparentním šifrováním dat pomocí aplikace SQL Server Management Studio a pomocí jazyka Transact-SQL.

Použití aplikace SQL Server Management Studio

  1. V databázi master vytvořte hlavní klíč a certifikát databáze. Další informace najdete v tématu Použití jazyka Transact-SQL dále v tomto článku.

  2. Vytvořte zálohu certifikátu serveru v databázi master. Další informace najdete v tématu Použití jazyka Transact-SQL dále v tomto článku.

  3. V Průzkumníku objektů klikněte pravým tlačítkem na složku Databáze a vyberte Nová databáze.

  4. V dialogovém okně Nová databáze zadejte do pole Název databáze název nové databáze.

  5. Do pole Vlastník zadejte jméno vlastníka nové databáze. Můžete také vybrat výpustku (...) pro otevření dialogového okna Vybrat vlastníka databáze. Další informace o vytvoření nové databáze naleznete v tématu Vytvoření databáze.

  6. V Průzkumníku objektů vyberte znaménko plus a rozbalte složku Databáze.

  7. Klikněte pravým tlačítkem myši na databázi, kterou jste vytvořili, přejděte na Úkolya vyberte Spravovat šifrování databáze.

    V dialogovém okně Spravovat šifrování databáze jsou k dispozici následující možnosti.

    Šifrovací algoritmus
    Zobrazí nebo nastaví algoritmus pro šifrování databáze. AES128 je výchozí algoritmus. Toto pole nemůže být prázdné. Další informace o šifrovacích algoritmech najdete v tématu Volba šifrovacího algoritmu.

    Použít certifikát serveru
    Nastaví šifrování, které má být zabezpečeno certifikátem. Vyberte jednu ze seznamu. Pokud nemáte oprávnění VIEW DEFINITION k certifikátům serveru, je tento seznam prázdný. Pokud je vybrána metoda šifrování certifikátu, tato hodnota nemůže být prázdná. Další informace o certifikátech najdete v tématu certifikáty SYSTÉMU SQL Server a asymetrické klíče.

    Použití asymetrického klíče serveru
    Nastaví šifrování, které má být zabezpečeno asymetrickým klíčem. Zobrazí se pouze dostupné asymetrické klíče. Databázi může zašifrovat pomocí TDE pouze asymetrický klíč chráněný modulem EKM.

    Nastavit šifrování databáze na
    Změní databázi tak, aby zapnul (zaškrtnuto) nebo vypnul (nezaškrtnuto) TDE.

  8. Po dokončení vyberte OK.

Použijte Transact-SQL

  1. V Průzkumníku objektůse připojte k instanci Databázového stroje.

  2. Na panelu Standard vyberte Nový dotaz.

  3. Zkopírujte a vložte následující příklad do okna dotazu a vyberte Spustit.

    -- Create a database master key and a certificate in the master database.
    USE master;
    GO
    
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = '*rt@40(FL&dasl1';
    GO
    
    CREATE CERTIFICATE TestSQLServerCert
        WITH SUBJECT = 'Certificate to protect TDE key'
    GO
    
    -- Create a backup of the server certificate in the master database.
    -- The following code stores the backup of the certificate and the private key file in the default data location for this instance of SQL Server
    -- (C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA).
    BACKUP CERTIFICATE TestSQLServerCert TO FILE = 'TestSQLServerCert'
    WITH PRIVATE KEY (
        FILE = 'SQLPrivateKeyFile',
        ENCRYPTION BY PASSWORD = '*rt@40(FL&dasl1'
    );
    GO
    
    -- Create a database to be protected by TDE.
    CREATE DATABASE CustRecords;
    GO
    
    -- Switch to the new database.
    -- Create a database encryption key, that is protected by the server certificate in the master database.
    -- Alter the new database to encrypt the database using TDE.
    USE CustRecords;
    GO
    
    CREATE DATABASE ENCRYPTION KEY
        WITH ALGORITHM = AES_128 ENCRYPTION BY SERVER CERTIFICATE TestSQLServerCert;
    GO
    
    ALTER DATABASE CustRecords
    SET ENCRYPTION ON;
    GO
    

Další informace najdete tady:

Přesunutí databáze chráněné transparentním šifrováním dat

Následující postupy ukazují, jak přesunout databázi chráněnou transparentním šifrováním dat pomocí aplikace SQL Server Management Studio a pomocí jazyka Transact-SQL.

Použití aplikace SQL Server Management Studio

  1. V Průzkumníku objektů klikněte pravým tlačítkem myši na databázi, kterou jste dříve zašifrovali, přejděte na Úkoly a vyberte Odpojit....

    V dialogovém okně Odpojit databázi jsou k dispozici následující možnosti.

    Databáze k odpojení
    Zobrazí seznam databází, které se mají odpojit.

    název databáze
    Zobrazí název databáze, která se má odpojit.

    Přerušte připojení
    Odpojte připojení k zadané databázi.

Poznámka

Databázi nemůžete odpojit s aktivními připojeními.

aktualizovat statistiky
Operace odpojení ve výchozím nastavení uchovává veškeré zastaralé statistiky optimalizace při odpojení databáze; chcete-li aktualizovat existující statistiky optimalizace, zaškrtněte toto políčko.

udržovat katalogy Full-Text
Ve výchozím nastavení operace odpojení uchovává všechny fulltextové katalogy, které jsou přidružené k databázi. Pokud je chcete odebrat, zrušte zaškrtnutí políčka Zachovat katalogy Full-Text. Tato možnost se zobrazí jenom v případě, že upgradujete databázi z SQL Serveru 2005 (9.x).

stav
Zobrazí jeden z následujících stavů: Připraveno nebo Nepřipraveno.

zprávy
Sloupec Zpráva může zobrazit informace o databázi následujícím způsobem:

  • Při replikaci databáze je StavNepřipraveno a ve sloupci Zpráva se zobrazí Databáze je replikovaná.

  • Pokud má databáze jedno nebo více aktivních připojení, stav je Nepřipraveno a ve sloupci Zpráva se zobrazí<number_of_active_connections> aktivní připojení – například: 1 aktivní připojení. Před odpojením databáze je nutné odpojit všechna aktivní připojení výběrem možnosti Drop Connections.

Pokud chcete získat další informace o zprávě, vyberte hypertextový odkaz a otevřete monitorování aktivit.

  1. Vyberte OK.

  2. Pomocí Průzkumníka Windows přesuňte nebo zkopírujte soubory databáze ze zdrojového serveru do stejného umístění na cílovém serveru.

  3. Pomocí Průzkumníka Windows přesuňte nebo zkopírujte zálohu certifikátu serveru a souboru privátního klíče ze zdrojového serveru do stejného umístění na cílovém serveru.

  4. Vytvořte hlavní klíč databáze v cílové instanci SQL Serveru. Další informace najdete v tématu Použití jazyka Transact-SQL dále v tomto článku.

  5. Znovu vytvořte certifikát serveru pomocí původního záložního souboru certifikátu serveru. Další informace najdete v tématu Použití jazyka Transact-SQL dále v tomto článku.

  6. V Průzkumníku objektů v aplikaci SQL Server Management Studio klikněte pravým tlačítkem na složku databáze a vyberte Připojit....

  7. V dialogovém okně Připojit databáze v části Databáze pro připojenívyberte Přidat.

  8. V dialogovém okně Najít soubory databáze –server_name vyberte soubor databáze, který chcete připojit k novému serveru, a vyberte OK.

    Následující možnosti jsou k dispozici v dialogovém okně Připojit databáze.

    Databáze k připojení
    Zobrazí informace o vybraných databázích.

    <žádné záhlaví sloupce>
    Zobrazí ikonu označující stav operace připojení. Možné ikony jsou popsány v popisu stavu.

    umístění souboru MDF
    Zobrazí cestu a název vybraného souboru MDF.

    Název databáze
    Zobrazí název databáze.

    Připojit jako
    Volitelně můžete určit jiný název databáze, která se má připojit jako.

    vlastníka
    Poskytuje rozevírací seznam možných vlastníků databází, ze kterých můžete volitelně vybrat jiného vlastníka.

    Stav
    Zobrazí stav databáze podle následující tabulky.

Ikona Text stavu Popis
(Žádná ikona) (Bez textu) Operace připojení nebyla spuštěna nebo může být stále ve stavu čekání pro tento objekt. Toto je výchozí nastavení při otevření dialogového okna.
Zelený trojúhelník směřující doprava Probíhá Operace připojení byla spuštěna, ale není dokončená.
Zelená značka zaškrtnutí Úspěch Objekt byl úspěšně připojen.
Červený kruh obsahující bílý kříž Chyba Operace připojení narazila na chybu a nepovedla se dokončit úspěšně.
Kruh obsahující dva černé kvadranty (vlevo a vpravo) a dva bílé kvadranty (nahoře a dole) Zastavený Operace připojení nebyla úspěšně dokončena, protože uživatel operaci zastavil.
Kruh obsahující zakřivenou šipku směřující proti směru hodinových ručiček Vrácení zpět Operace připojení objektu byla úspěšná, ale byla vrácena zpět kvůli chybě během připojování jiného objektu.

zpráva
Zobrazí prázdnou zprávu nebo hypertextový odkaz Soubor nebyl nalezen.

Přidat
Vyhledejte potřebné hlavní databázové soubory. Když uživatel vybere soubor .mdf, příslušné informace se vyplní automaticky do příslušných polí Databáze pro připojení mřížky.

odebrat
Odebere vybraný soubor z databáze a připojí mřížku.

"<database_name>" podrobnosti databáze
Zobrazí názvy souborů, které se mají připojit. Chcete-li ověřit nebo změnit název cesty souboru, vyberte tlačítko Procházet (...).

Poznámka

Pokud soubor neexistuje, ve sloupci Zpráva se zobrazí zpráva Nenalezena. Pokud se soubor protokolu nenajde, existuje v jiném adresáři nebo byl odstraněn. Musíte aktualizovat cestu k souboru v podrobnostech databáze mřížky, aby odkazovala na správné umístění, nebo odebrat soubor protokolu z mřížky. Pokud se datový soubor .ndf nenajde, musíte v mřížce aktualizovat jeho cestu, aby odkazovala na správné umístění.

původní název souboru
Zobrazí název připojeného souboru, který patří do databáze.

typ souboru
Označuje typ souboru, Datanebo Log.

aktuální cesta k souboru
Zobrazí cestu k vybranému databázovému souboru. Cestu je možné upravit ručně.

zprávy
Zobrazí prázdnou zprávu nebo hypertextový odkazSoubor nebyl nalezen.

Použijte Transact-SQL

  1. V Průzkumníku objektůse připojte k nějaké instanci databázového stroje.

  2. Na panelu Standard vyberte Nový dotaz.

  3. Zkopírujte a vložte následující příklad do okna dotazu a vyberte Spustit.

    -- Detach the TDE protected database from the source server.
    USE master;
    GO
    
    EXEC master.dbo.sp_detach_db @dbname = N'CustRecords';
    GO
    
    -- Move or copy the database files from the source server to the same location on the destination server.
    -- Move or copy the backup of the server certificate and the private key file from the source server to the same location on the destination server.
    -- Create a database master key on the destination instance of SQL Server.
    USE master;
    GO
    
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = '*rt@40(FL&dasl1';
    GO
    
    -- Recreate the server certificate by using the original server certificate backup file.
    -- The password must be the same as the password that was used when the backup was created.
    CREATE CERTIFICATE TestSQLServerCert
    FROM FILE = 'TestSQLServerCert'
    WITH PRIVATE KEY (
        FILE = 'SQLPrivateKeyFile',
        DECRYPTION BY PASSWORD = '*rt@40(FL&dasl1'
    );
    GO
    
    -- Attach the database that is being moved.
    -- The path of the database files must be the location where you have stored the database files.
    CREATE DATABASE [CustRecords] ON (FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA\CustRecords.mdf'),
        (FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA\CustRecords_log.LDF')
    FOR ATTACH;
    GO
    

Další informace najdete tady: