Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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 danychmaster
, aby utworzyć klucz główny bazy danych.Wymaga uprawnienia
CREATE CERTIFICATE
na bazie danychmaster
, aby utworzyć certyfikat, który chroni DEK.Wymaga
CONTROL DATABASE
uprawnienia do zaszyfrowanej bazy danych iVIEW 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
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.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.W Eksploratorze obiektów kliknij prawym przyciskiem myszy folder Databases i wybierz pozycję New Database.
W oknie dialogowym Nowa baza danych, w polu Nazwa bazy danych, wprowadź nazwę nowej bazy danych.
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.
W Eksploratorze obiektów wybierz znak plus, aby rozwinąć folder Databases.
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.Po zakończeniu wybierz pozycję OK.
Używaj Transact-SQL
W Eksploratorze Obiektów , nawiąż połączenie z wystąpieniem silnika bazy danych.
Na pasku standardowym wybierz pozycję Nowe zapytanie.
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:
- CREATE MASTER KEY (Transact-SQL)
- CREATE CERTIFICATE (Transact-SQL)
- certyfikat kopii zapasowej (Transact-SQL)
- UTWÓRZ BAZĘ DANYCH
- UTWÓRZ KLUCZ SZYFROWANIA BAZY DANYCH (Transact-SQL)
- ALTER DATABASE (Transact-SQL)
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
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.
Wybierz pozycję OK.
Za pomocą Eksploratora Windows przenieś lub skopiuj pliki bazy danych z serwera źródłowego do tej samej lokalizacji na serwerze docelowym.
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.
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.
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.
W Eksploratorze obiektów w programie SQL Server Management Studio kliknij prawym przyciskiem myszy folder Databases i wybierz pozycję Attach....
W oknie dialogowym Dołączanie baz danych, w sekcji Bazy danych do dołączenia, wybierz opcję Dodaj.
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
W Eksploratorze obiektów nawiąż połączenie z wystąpieniem silnika bazy danych.
Na pasku Standardowa wybierz pozycję Nowe zapytanie.
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: