Megosztás a következőn keresztül:


TDE által védett adatbázis áthelyezése egy másik SQL Serverre

A következőkre vonatkozik:SQL Server

Ez a cikk azt ismerteti, hogyan védhet meg egy adatbázist transzparens adattitkosítással (TDE), majd hogyan helyezheti át az adatbázist az SQL Server egy másik példányára az SQL Server Management Studio vagy a Transact-SQL használatával. A TDE valós idejű I/O-titkosítást és az adatok és naplófájlok visszafejtést végez. A titkosítás egy adatbázis-titkosítási kulcsot (DEK) használ, amelyet az adatbázis rendszerindítási rekordjában tárol a rendelkezésre állás érdekében a helyreállítás során. A DEK egy szimmetrikus kulcs, amelyet a kiszolgáló master adatbázisában tárolt tanúsítvány vagy egy EKM-modul által védett aszimmetrikus kulcs véd.

Korlátozások

  • A TDE által védett adatbázisok áthelyezésekor a DEK megnyitásához használt tanúsítványt vagy aszimmetrikus kulcsot is át kell helyeznie. A tanúsítványt vagy az aszimmetrikus kulcsot telepíteni kell a célkiszolgáló master adatbázisába, hogy az SQL Server hozzáférhessen az adatbázisfájlokhoz. További információ: Transzparens adattitkosítás (TDE).

  • A tanúsítvány helyreállításához meg kell őriznie a tanúsítványfájl és a titkos kulcs fájljának másolatait is. A titkos kulcs jelszavának nem kell megegyeznie az adatbázis főkulcsjelszójának jelszavával.

  • Az SQL Server alapértelmezés szerint C:\Program Files\Microsoft SQL Server\MSSQL<xx>.MSSQLSERVER\MSSQL\DATA tárolja az itt létrehozott fájlokat, ahol <xx> a verziószám.

Engedélyek

  • Az adatbázis főkulcsának létrehozásához CONTROL DATABASE engedély szükséges a master adatbázishoz.

  • A DEK-t védő tanúsítvány létrehozásához CREATE CERTIFICATE engedélyre van szükség az master adatbázison.

  • CONTROL DATABASE engedélyt igényel a titkosított adatbázisban, és VIEW DEFINITION engedélyt az adatbázis titkosításához használt tanúsítványra vagy aszimmetrikus kulcsra.

Transzparens adattitkosítással védett adatbázis létrehozása

Az alábbi eljárások bemutatják, hogyan hozhat létre TDE által védett adatbázist az SQL Server Management Studio és a Transact-SQL használatával.

Az SQL Server Management Studio használata

  1. Hozzon létre egy adatbázis-főkulcsot és -tanúsítványt a master adatbázisban. További információ: A Transact-SQL használata a cikk későbbi részében.

  2. Készítsen biztonsági másolatot a kiszolgálótanúsítványról a master adatbázisban. További információ: A Transact-SQL használata a cikk későbbi részében.

  3. Az Object Explorerben kattintson a jobb gombbal az Adatbázisok mappára, és válassza Új adatbázislehetőséget.

  4. Az Új adatbázis párbeszédpanel Adatbázis neve mezőbe írja be az új adatbázis nevét.

  5. A Tulajdonos mezőbe írja be az új adatbázis tulajdonosának nevét. Alternatív megoldásként válassza a három pontot (...) az Adatbázis-tulajdonos kiválasztása párbeszédpanel megnyitásához. További információ az új adatbázis létrehozásáról: Adatbázis létrehozása.

  6. Az Object Explorerben válassza a pluszjelet a Adatbázisok mappa kibontásához.

  7. Kattintson a jobb gombbal a létrehozott adatbázisra, mutasson Feladatokpontra, és válassza Adatbázis-titkosítás kezeléselehetőséget.

    Az alábbi lehetőségek érhetők el az Adatbázis-titkosítás kezelése párbeszédpanelen.

    • titkosítási algoritmus

      Megjeleníti vagy beállítja az adatbázis-titkosításhoz használni kívánt algoritmust. AES128 az alapértelmezett algoritmus. Ez a mező nem lehet üres. További információ a titkosítási algoritmusokról: Titkosítási algoritmus kiválasztása.

    • Kiszolgálótanúsítvány használata

      A tanúsítvány által védett titkosítást állítja be. Válasszon egyet a listából. Ha nem rendelkezik a kiszolgálótanúsítványok VIEW DEFINITION engedélyével, ez a lista üres. Ha egy tanúsítványtitkosítási módszer van kiválasztva, ez az érték nem lehet üres. További információ a tanúsítványokról: SQL Server-tanúsítványok és aszimmetrikus kulcsok.

    • Kiszolgáló aszimmetrikus kulcsának használata

      Beállítja, hogy a titkosítást aszimmetrikus kulccsal lehessen védeni. Csak az elérhető aszimmetrikus kulcsok jelennek meg. Csak egy EKM-modul által védett aszimmetrikus kulcs képes TDE használatával titkosítani egy adatbázist.

    • Adatbázis-titkosítás beállítása

      Módosítja az adatbázist a TDE bekapcsolásához (bejelölve) vagy kikapcsolásához (nincs bejelölve).

  8. Ha végzett, válassza OKlehetőséget.

Használd a Transact-SQL-t

  1. Az Object Explorer-ben csatlakozzon az adatbázismotor egy példányához.

  2. A Standard sávon válassza Új lekérdezéslehetőséget.

  3. Másolja és illessze be a következő példát a lekérdezési ablakba, és válassza a Végrehajtáslehetőséget.

    -- Create a database master key and a certificate in the master database.
    USE master;
    GO
    
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<password>';
    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 = '<password>');
    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
    

További információ:

Transzparens adattitkosítással védett adatbázis áthelyezése

Az alábbi eljárások bemutatják, hogyan helyezhet át egy TDE által védett adatbázist az SQL Server Management Studio és a Transact-SQL használatával.

Az SQL Server Management Studio használata

  1. Válassza le az adatbázist.

    Az Object Explorerben kattintson a jobb gombbal a korábban titkosított adatbázisra, mutasson a Feladatok, majd válassza a Leválasztás...lehetőséget.

    Az alábbi lehetőségek érhetők el az Adatbázis leválasztása párbeszédpanelen.

    • Leválasztandó adatbázisok

      Felsorolja a leválasztani kívánt adatbázisokat.

    • adatbázisnév

      Megjeleníti a leválasztani kívánt adatbázis nevét.

    • Kapcsolatok elvetése

      Kapcsolat bontása a megadott adatbázissal.

      Jegyzet

      Aktív kapcsolattal rendelkező adatbázist nem lehet leválasztani.

    • Frissítési statisztikák

      Alapértelmezés szerint a leválasztási művelet megőrzi az adatbázis leválasztásakor az elavult optimalizálási statisztikákat; A meglévő optimalizálási statisztikák frissítéséhez jelölje be ezt a jelölőnégyzetet.

    • Full-Text katalógusok megőrzése

      A leválasztási művelet alapértelmezés szerint megőrzi az adatbázishoz társított teljes szöveges katalógusokat. Az eltávolításukhoz törölje a jelet a Full-Text katalógusok megőrzése jelölőnégyzetből. Ez a beállítás csak akkor jelenik meg, ha adatbázist frissít az SQL Server 2005-ről (9.x).

    • állapot

      A következő állapotok egyikét jeleníti meg: Kész vagy Nem kész.

    • üzenet

      Az Üzenet oszlop az alábbiak szerint jelenítheti meg az adatbázissal kapcsolatos információkat:

      • Ha egy adatbázis replikációval foglalkozik, a ÁllapotNem áll készen, és az üzenet oszlop replikált adatbázist jeleníti meg.

      • Ha egy adatbázis egy vagy több aktív kapcsolattal rendelkezik, az ÁllapotNem áll készen, és az Üzenet oszlop <number_of_active_connections>Aktív kapcsolat(ok) jelenik meg – például: 1 Aktív kapcsolat(ok). Azért, hogy leválaszthassa az adatbázist, az aktív kapcsolatokat meg kell szüntetnie a Kapcsolatok megszüntetésekiválasztásával.

      Ha további információt szeretne kapni egy üzenetről, jelölje ki a hivatkozásra mutató szöveget a Tevékenységfigyelő megnyitásához.

  2. Válassza OKlehetőséget.

  3. A Windows Intézővel helyezze át vagy másolja át az adatbázisfájlokat a forráskiszolgálóról ugyanarra a helyre a célkiszolgálón.

  4. A Windows Intézővel helyezze át vagy másolja át a kiszolgálótanúsítvány és a titkos kulcsfájl biztonsági másolatát a forráskiszolgálóról a célkiszolgáló ugyanazon helyére.

  5. Hozzon létre egy adatbázis-főkulcsot az SQL Server célpéldányán. További információ: A Transact-SQL használata a cikk későbbi részében.

  6. Hozza létre újra a kiszolgálótanúsítványt az eredeti kiszolgálótanúsítvány biztonsági mentési fájljának használatával. További információ: A Transact-SQL használata a cikk későbbi részében.

  7. Az SQL Server Management Studio Objektumkezelőjében kattintson a jobb gombbal az Adatbázisok mappára, és válassza a Csatolás...lehetőséget.

  8. Az Adatbázis csatolása párbeszédpanelen, a Csatolandó adatbázisokalatt válassza a Hozzáadáslehetőséget.

  9. A Adatbázisfájlok keresése –server_name párbeszédpanelen jelölje ki az új kiszolgálóhoz csatolni kívánt adatbázisfájlt, majd válassza az OKlehetőséget.

    Az alábbi lehetőségek érhetők el az Adatbázisok csatolása párbeszédpanelen.

    • csatolandó adatbázisok

      A kijelölt adatbázisokkal kapcsolatos információkat jeleníti meg.

    • <nincs oszlopfejléc>

      A csatolási művelet állapotát jelző ikont jelenít meg. A lehetséges ikonokat az Állapot leírásában ismertetjük.

    • MDF-fájl helye

      Megjeleníti a kijelölt MDF-fájl elérési útját és fájlnevét.

    • adatbázisnév

      Megjeleníti az adatbázis nevét.

    • Csatolás mint

      Opcionálisan egy másik nevet ad meg a csatolandó adatbázisnak.

    • Tulajdonos

      Legördülő listát biztosít a lehetséges adatbázis-tulajdonosokról, amelyek közül választható ki egy másik tulajdonos.

    • állapot

      Az adatbázis állapotát az alábbi táblázat szerint jeleníti meg.

      Ikon Állapotszöveg Leírás
      (Nincs ikon) (Nincs szöveg) A csatolási művelet nem indult el, vagy függőben lehet ehhez az objektumhoz. A párbeszédpanel megnyitásakor ez az alapértelmezett beállítás.
      Zöld, jobbra mutató háromszög Folyamatban A csatolási művelet elindult, de még nem fejeződött be.
      Zöld pipa Siker Az objektum csatolása sikeresen megtörtént.
      Fehér keresztet tartalmazó piros kör Hiba A csatolási művelet hibát észlelt, és nem fejeződött be sikeresen.
      Két fekete kvadránst (bal és jobb oldalon) és két fehér kvadránst (felül és alul) tartalmazó kör Megállt A csatolási művelet nem fejeződött be sikeresen, mert a felhasználó leállította a műveletet.
      Kör, amely tartalmaz egy ívelt nyilat, amely az óramutató járásával ellentétesen mutat. Visszaállítva A csatolási művelet sikeres volt, de egy másik objektum csatolása során fellépő hiba miatt visszagördült.
    • üzenet

      Üres üzenetet vagy "Fájl nem található" hivatkozást jelenít meg.

    • Hozzáadás:

      Keresse meg a szükséges fő adatbázisfájlokat. Amikor a felhasználó kiválaszt egy .mdf fájlt, a rendszer automatikusan kitölti a vonatkozó adatokat a -adatbázisok megfelelő mezőiben, hogy csatolja rácsot.

    • eltávolítása

      Eltávolítja a kijelölt fájlt a -adatbázisokból rács csatolásához.

    • "<database_name>" adatbázis részletei

      Megjeleníti a csatolandó fájlok nevét. Egy fájl elérési útnevének ellenőrzéséhez vagy módosításához válassza a Tallózás gombot (...).

      Jegyzet

      Ha egy fájl nem létezik, az Üzenet oszlopban a "Nem található" szöveg jelenik meg. Ha nem található naplófájl, az egy másik könyvtárban található vagy törölve lett. Frissítenie kell a fájl elérési útját a adatbázis részletek rácsán, hogy a megfelelő helyre mutasson, vagy el kell távolítania a naplófájlt a rácsról. Ha nem található .ndf adatfájl, frissítenie kell a rács elérési útját, hogy a megfelelő helyre mutasson.

    • eredeti fájlnév

      Megjeleníti az adatbázishoz tartozó csatolt fájl nevét.

    • fájltípus

      A fájl típusát, Adatvagy Napló.

    • aktuális fájl elérési útja

      Megjeleníti a kijelölt adatbázisfájl elérési útját. Az elérési út manuálisan szerkeszthető.

    • üzenet

      Üres üzenetet vagy "fájl nem található" hivatkozást jelenít meg.

Használd a Transact-SQL-t

  1. Az Object Explorer-ben csatlakozzon az adatbázismotor egy példányához.

  2. A Standard sávon válassza Új lekérdezéslehetőséget.

  3. Másolja és illessze be a következő példát a lekérdezési ablakba, és válassza a Végrehajtáslehetőséget.

    -- Detach the TDE protected database from the source server.
    USE master;
    GO
    
    EXECUTE 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 = '<password>';
    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 = '<password>');
    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
    

További információ: