Udostępnij za pośrednictwem


Przenoszenie chronionej bazy danych TDE do innego programu SQL Server

Dotyczy:programu SQL Server

W tym artykule opisano sposób ochrony bazy danych przy użyciu funkcji Transparent Data Encryption (TDE), a następnie przenoszenia bazy danych do innego wystąpienia programu SQL Server przy użyciu programu SQL Server Management Studio lub Języka Transact-SQL. Funkcja TDE wykonuje szyfrowanie we/wy w czasie rzeczywistym i odszyfrowywanie plików danych i dzienników. Szyfrowanie używa klucza szyfrowania bazy danych (DEK), który jest przechowywany w rekordzie rozruchowym bazy danych w celu zapewnienia dostępności podczas odzyskiwania. Klucz szyfrowania danych jest kluczem symetrycznym zabezpieczonym przy użyciu certyfikatu przechowywanego w bazie danych master serwera lub klucza asymetrycznego chronionego przez moduł EKM.

Ograniczenia

  • Podczas przenoszenia chronionej bazy danych TDE należy również przenieść certyfikat lub klucz asymetryczny używany do otwierania klucza szyfrowania danych. Certyfikat lub klucz asymetryczny należy zainstalować w master bazie danych serwera docelowego, aby program SQL Server mógł uzyskiwać dostęp do plików bazy danych. Aby uzyskać więcej informacji, zobacz Transparent Data Encryption (TDE).

  • Aby odzyskać certyfikat, należy zachować kopie zarówno pliku certyfikatu, jak i pliku klucza prywatnego. Hasło klucza prywatnego nie musi być takie samo jak hasło klucza głównego bazy danych.

  • Program SQL Server domyślnie przechowuje pliki utworzone tutaj w C:\Program Files\Microsoft SQL Server\MSSQL<xx>.MSSQLSERVER\MSSQL\DATA, gdzie <xx> jest numerem wersji.

Uprawnienia

  • Wymaga uprawnienia CONTROL DATABASE do bazy danych master, aby utworzyć klucz główny bazy danych.

  • Wymaga uprawnienia CREATE CERTIFICATE na bazie danych master, aby utworzyć certyfikat, który chroni DEK.

  • Wymaga CONTROL DATABASE uprawnienia do zaszyfrowanej bazy danych i VIEW DEFINITION uprawnienia do certyfikatu lub klucza asymetrycznego używanego do szyfrowania klucza szyfrowania bazy danych.

Tworzenie bazy danych chronionej przez funkcję Transparent Data Encryption

Poniższe procedury pokazują, jak utworzyć bazę danych chronioną przez funkcję TDE przy użyciu programu SQL Server Management Studio i przy użyciu języka Transact-SQL.

Korzystanie z programu SQL Server Management Studio

  1. Utwórz klucz główny bazy danych i certyfikat w bazie danych master. Aby uzyskać więcej informacji, zobacz Using Transact-SQL w dalszej części tego artykułu.

  2. Utwórz kopię zapasową certyfikatu serwera w bazie danych master. Aby uzyskać więcej informacji, zobacz Using Transact-SQL w dalszej części tego artykułu.

  3. W Eksploratorze obiektów kliknij prawym przyciskiem myszy folder Databases i wybierz pozycję New Database.

  4. W oknie dialogowym Nowa baza danych, w polu Nazwa bazy danych, wprowadź nazwę nowej bazy danych.

  5. W polu Właściciel wprowadź nazwę właściciela nowej bazy danych. Alternatywnie wybierz wielokropek (...), aby otworzyć okno dialogowe Wybierz właściciela bazy danych. Aby uzyskać więcej informacji na temat tworzenia nowej bazy danych, zobacz Tworzenie bazy danych.

  6. W Eksploratorze obiektów wybierz znak plus, aby rozwinąć folder Databases.

  7. Kliknij prawym przyciskiem myszy utworzoną bazę danych, wskaż Tasksi wybierz pozycję Zarządzaj szyfrowaniem bazy danych.

    Następujące opcje są dostępne w oknie dialogowym Zarządzanie szyfrowaniem bazy danych.

    Algorytm szyfrowania
    Wyświetla lub ustawia algorytm do użycia na potrzeby szyfrowania bazy danych. AES128 jest algorytmem domyślnym. To pole nie może być puste. Aby uzyskać więcej informacji na temat algorytmów szyfrowania, zobacz Wybieranie algorytmu szyfrowania.

    Używanie certyfikatu serwera
    Ustawia szyfrowanie, które ma być zabezpieczone przez certyfikat. Wybierz jeden z listy. Jeśli nie masz uprawnień VIEW DEFINITION dla certyfikatów serwera, ta lista jest pusta. Jeśli wybrano metodę szyfrowania certyfikatu, ta wartość nie może być pusta. Aby uzyskać więcej informacji na temat certyfikatów, zobacz certyfikaty programu SQL Server i klucze asymetryczne.

    Używanie klucza asymetrycznego serwera
    Ustawia szyfrowanie do zabezpieczenia za pomocą klucza asymetrycznego. Wyświetlane są tylko dostępne klucze asymetryczne. Tylko klucz asymetryczny chroniony przez moduł EKM może szyfrować bazę danych przy użyciu funkcji TDE.

    ustaw szyfrowanie bazy danych na
    Zmienia bazę danych, aby włączyć (zaznaczone) lub wyłączyć (niezaznaczone) funkcję TDE.

  8. Po zakończeniu wybierz pozycję OK.

Używaj Transact-SQL

  1. W Eksploratorze Obiektów , nawiąż połączenie z wystąpieniem silnika bazy danych.

  2. Na pasku standardowym wybierz pozycję Nowe zapytanie.

  3. Skopiuj poniższy przykład i wklej go w oknie zapytania, a następnie wybierz pozycję Wykonaj.

    -- 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
    

Aby uzyskać więcej informacji, zobacz:

Przenoszenie bazy danych chronionej za pomocą funkcji Transparent Data Encryption

Poniższe procedury pokazują, jak przenieść bazę danych chronioną przez funkcję TDE przy użyciu programu SQL Server Management Studio i języka Transact-SQL.

Korzystanie z programu SQL Server Management Studio

  1. W Eksploratorze obiektów kliknij prawym przyciskiem myszy bazę danych, którą wcześniej zaszyfrowałeś, wskaż polecenie Tasks i wybierz pozycję Odłącz....

    Poniższe opcje są dostępne w oknie dialogowym Odłącz bazę danych.

    Database w celu odłączenia
    Wyświetla listę baz danych do odłączenia.

    nazwa bazy danych
    Wyświetla nazwę bazy danych do odłączenia.

    Zrywanie połączeń
    Rozłącz połączenia z określoną bazą danych.

Notatka

Nie można odłączyć bazy danych z aktywnymi połączeniami.

Statystyki aktualizacji
Domyślnie operacja odłączania zachowuje wszelkie nieaktualne statystyki optymalizacji podczas odłączania bazy danych; aby zaktualizować istniejące statystyki optymalizacji, zaznacz to pole wyboru.

zachować Full-Text katalogi
Domyślnie operacja odłączania przechowuje wszystkie katalogi pełnotekstowe skojarzone z bazą danych. Aby je usunąć, wyczyść pole wyboru Zachowaj katalogi Full-Text. Ta opcja jest wyświetlana tylko w przypadku uaktualniania bazy danych z programu SQL Server 2005 (9.x).

Status
Przedstawia jeden z następujących stanów: Gotowy lub Nie gotowy.

Komunikat
Kolumna Message może wyświetlać informacje o bazie danych w następujący sposób:

  • Gdy baza danych jest zaangażowana w replikację, stan jest Niegotowy, a w kolumnie Komunikat jest wyświetlany Baza danych zreplikowana.

  • Gdy baza danych ma co najmniej jedno aktywne połączenie, Stan jest Niegotowy, a w kolumnie Komunikat są wyświetlane <number_of_active_connections>Aktywne połączenie — na przykład: 1 Aktywne połączenie. Aby można było odłączyć bazę danych, należy odłączyć wszystkie aktywne połączenia, wybierając pozycję Drop Connections.

Aby uzyskać więcej informacji na temat wiadomości, wybierz tekst hiperlinku, aby otworzyć monitor aktywności.

  1. Wybierz pozycję OK.

  2. Za pomocą Eksploratora Windows przenieś lub skopiuj pliki bazy danych z serwera źródłowego do tej samej lokalizacji na serwerze docelowym.

  3. Za pomocą Eksploratora Windows przenieś lub skopiuj kopię zapasową certyfikatu serwera i pliku klucza prywatnego z serwera źródłowego do tej samej lokalizacji na serwerze docelowym.

  4. Utwórz klucz główny bazy danych w wystąpieniu docelowym programu SQL Server. Aby uzyskać więcej informacji, zobacz Using Transact-SQL w dalszej części tego artykułu.

  5. Utwórz ponownie certyfikat serwera przy użyciu oryginalnego pliku kopii zapasowej certyfikatu serwera. Aby uzyskać więcej informacji, zobacz Using Transact-SQL w dalszej części tego artykułu.

  6. W Eksploratorze obiektów w programie SQL Server Management Studio kliknij prawym przyciskiem myszy folder Databases i wybierz pozycję Attach....

  7. W oknie dialogowym Dołączanie baz danych, w sekcji Bazy danych do dołączenia, wybierz opcję Dodaj.

  8. W oknie dialogowym Lokalizuj pliki bazy danych —server_name wybierz plik bazy danych, aby dołączyć do nowego serwera, a następnie wybierz pozycję OK.

    Poniższe opcje są dostępne w oknie dialogowym dołączania baz danych .

    Bazy danych do załączenia
    Wyświetla informacje o wybranych bazach danych.

    <brak nagłówka kolumny>
    Wyświetla ikonę wskazującą stan operacji dołączania. Możliwe ikony są opisane w opisie stanu.

    Lokalizacja pliku MDF
    Wyświetla ścieżkę i nazwę wybranego pliku MDF.

    nazwa bazy danych
    Wyświetla nazwę bazy danych.

    Dołączanie jako
    Opcjonalnie można określić inną nazwę, pod którą baza danych ma zostać dołączona.

    właściciel
    Zawiera listę rozwijaną możliwych właścicieli baz danych, z której można opcjonalnie wybrać innego właściciela.

    Status
    Wyświetla stan bazy danych zgodnie z poniższą tabelą.

Ikona Tekst stanu Opis
(Brak ikony) (Brak tekstu) Operacja dołączania nie została uruchomiona lub może być w trakcie realizacji dla tego obiektu. Jest to ustawienie domyślne po otwarciu okna dialogowego.
Zielony, trójkąt wskazujący w prawo W toku Operacja dołączania została uruchomiona, ale nie została ukończona.
Zielony znacznik wyboru Sukces Obiekt został pomyślnie dołączony.
Czerwony okrąg zawierający biały krzyż Błąd Operacja dołączania napotkała błąd i nie została ukończona pomyślnie.
Okrąg zawierający dwie czarne ćwiartki (po lewej i prawej) i dwie białe ćwiartki (u góry i dołu) Zatrzymany Operacja dołączania nie została ukończona pomyślnie, ponieważ użytkownik zatrzymał operację.
Okrąg zawierający zakrzywioną strzałkę wskazującą przeciwnie do ruchu wskazówek zegara Cofnięta Operacja dołączania zakończyła się pomyślnie, ale została wycofana z powodu błędu podczas dołączania innego obiektu.

komunikat
Wyświetla pusty komunikat lub hiperlink "Nie znaleziono pliku".

Dodaj
Znajdź niezbędne pliki głównej bazy danych. Gdy użytkownik wybierze plik .mdf, odpowiednie informacje są automatycznie wypełniane w odpowiednich polach bazy danych w celu dołączenia siatki.

Usuń
Usuwa wybrany plik z bazy danych w celu dołączenia siatki.

"<database_name>" szczegóły bazy danych
Wyświetla nazwy plików do dołączenia. Aby zweryfikować lub zmienić nazwę ścieżki pliku, wybierz przycisk Przeglądaj (...).

Notatka

Jeśli plik nie istnieje, w kolumnie komunikatu zostanie wyświetlony komunikat "Nie znaleziono". Jeśli plik dziennika nie zostanie znaleziony, istnieje w innym katalogu lub został usunięty. Musisz zaktualizować ścieżkę pliku w szczegółach bazy danych , aby wskazać poprawną lokalizację lub usunąć plik dziennika z siatki. Jeśli plik danych ndf nie zostanie znaleziony, musisz zaktualizować jego ścieżkę w siatce, aby wskazać poprawną lokalizację.

oryginalna nazwa pliku
Wyświetla nazwę dołączonego pliku należącego do bazy danych.

typ pliku
Wskazuje typ pliku Datalub Log.

bieżąca ścieżka pliku
Wyświetla ścieżkę do wybranego pliku bazy danych. Ścieżkę można edytować ręcznie.

wiadomość
Wyświetla albo pusty komunikat, albo hiperłącze "Nie znaleziono pliku".

Użyj Transact-SQL

  1. W Eksploratorze obiektów nawiąż połączenie z wystąpieniem silnika bazy danych.

  2. Na pasku Standardowa wybierz pozycję Nowe zapytanie.

  3. Skopiuj poniższy przykład i wklej go w oknie zapytania, a następnie wybierz pozycję Wykonaj.

    -- 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
    

Aby uzyskać więcej informacji, zobacz: