Serwisanci dostępni teraz · czynne całą dobę, także w weekendy i świętaWarszawa i okolice · dojazd bezpłatny
Darmowa diagnoza laptopa
Darmowa diagnoza laptopa
Dojazd do klienta bezpłatnie
Dojazd do klienta bezpłatnie
Laptopy zastępcze bezpłatnie
Laptopy zastępcze bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie

Database Master Key

Termin Definicja
Database Master Key

Database Master Key to klucz szyfrujący zabezpieczający inne klucze i certyfikaty przechowywane w danej bazie danych.

Rola Database Master Key w hierarchii zabezpieczeń SQL Server

Database Master Key, skrótowo DMK, jest kluczem głównym przypisanym do konkretnej bazy danych w Microsoft SQL Server. Jego zadaniem nie jest bezpośrednie szyfrowanie wszystkich rekordów ani plików bazy. DMK stanowi element hierarchii kluczy: chroni inne obiekty kryptograficzne znajdujące się w tej samej bazie, przede wszystkim certyfikaty, klucze asymetryczne i klucze symetryczne. Dopiero te niższe elementy mogą być używane przez mechanizmy SQL Server do ochrony danych, poświadczeń lub innych sekretów.

DMK jest kluczem symetrycznym przechowywanym jako obiekt bazy danych. W typowej konfiguracji SQL Server zabezpiecza go dodatkowo Service Master Key, czyli klucz główny instancji. Przy takim układzie po otwarciu bazy silnik może automatycznie otworzyć DMK, gdy wymagają tego operacje kryptograficzne. Relacja między kluczem instancji a kluczem bazy ma znaczenie przy przenoszeniu, odtwarzaniu lub dołączaniu bazy do innej instancji SQL Server.

Utworzenie i ochrona klucza głównego bazy

Klucz tworzy się w kontekście konkretnej bazy za pomocą instrukcji Transact-SQL CREATE MASTER KEY. Przykładowa postać polecenia to CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'hasło';. Hasło służy do zabezpieczenia DMK i musi zostać zachowane, ponieważ może być potrzebne do ręcznego otwarcia klucza albo odzyskania dostępu po zmianie środowiska. Utworzenie klucza wymaga odpowiednich uprawnień w bazie, w tym uprawnienia CONTROL.

DMK tworzy się zasadniczo raz dla danej bazy danych, a nie osobno dla każdej tabeli. Po utworzeniu należy wykonać jego kopię zapasową instrukcją BACKUP MASTER KEY. Kopia jest zapisywana do wskazanego pliku i sama musi zostać zaszyfrowana odrębnym hasłem. Przykładowo używa się składni BACKUP MASTER KEY TO FILE = 'ścieżka' ENCRYPTION BY PASSWORD = 'hasło-kopii';. Plik kopii i hasło powinny być przechowywane oddzielnie oraz z ograniczonym dostępem. Sama kopia bazy danych nie zastępuje kopii DMK w każdej sytuacji odtworzeniowej.

Otwarcie DMK po odtworzeniu lub przeniesieniu bazy

Problem z Database Master Key często pojawia się po przywróceniu kopii bazy na innej instancji SQL Server, po dołączeniu plików bazy albo po migracji środowiska. Nowa instancja nie posiada pierwotnego powiązania między swoim Service Master Key a DMK zapisanym w przeniesionej bazie. W takiej sytuacji klucz może wymagać ręcznego otwarcia instrukcją OPEN MASTER KEY DECRYPTION BY PASSWORD = 'hasło';. Bez poprawnego otwarcia SQL Server nie będzie mógł użyć certyfikatów lub kluczy zależnych od tego DMK.

Stan automatycznego zabezpieczenia można sprawdzić w widoku katalogowym sys.databases, korzystając z kolumny is_master_key_encrypted_by_server. Informacje o kluczach symetrycznych, w tym o samym Database Master Key, są dostępne w widoku sys.symmetric_keys. Taka kontrola pozwala odróżnić brak DMK od sytuacji, w której klucz istnieje, lecz nie jest otwierany przez bieżącą instancję. Jeżeli DMK został usunięty albo uległ uszkodzeniu, zaszyfrowane nim klucze podrzędne mogą stać się niedostępne, a dane chronione przy ich użyciu mogą nie być możliwe do odszyfrowania.

Diagnostyka zależności kryptograficznych w SQL Server

Diagnostykę należy rozpocząć od ustalenia, w której bazie występuje problem, czy Database Master Key istnieje oraz jaki mechanizm go chroni. Następnie trzeba sprawdzić, czy operacja odwołująca się do certyfikatu lub klucza symetrycznego jest wykonywana w odpowiednim kontekście bazy. Błąd może wynikać z użycia niewłaściwego hasła, braku kopii DMK, odtworzenia bazy na innej instancji albo z niezgodności uprawnień użytkownika wykonującego polecenie.

Nie należy traktować DMK jako hasła administratora, klucza systemu Windows ani zamiennika kopii zapasowej całej bazy. Jest to konkretny element zabezpieczeń SQL Server, którego utrata może przerwać dostęp do zależnych obiektów kryptograficznych. Podczas analizy warto zabezpieczyć pliki kopii klucza, nie umieszczać haseł w publicznych skryptach i potwierdzić możliwość odtworzenia klucza w kontrolowanym środowisku. Szczegółowa składnia poleceń i wymagania zależne od edycji SQL Server są opisane w dokumentacji Microsoft dotyczącej CREATE MASTER KEY oraz kopii Database Master Key.

+48 22 100 48 29Zadzwoń teraz · serwisant w 1 godzinę