Udostępnij za pośrednictwem


CREATE MASTER KEY (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Baza danych SQL w usłudze Microsoft Fabric (wersja zapoznawcza)

Tworzy klucz główny bazy danych w bazie danych.

Important

  • Należy utworzyć kopię zapasową klucza głównego przy użyciu klucza głównego kopii zapasowej i zapisać kopię zapasową w bezpiecznej lokalizacji poza lokacją.
  • W programie SQL Server należy również utworzyć kopię zapasową klucza głównego usługi przy użyciu klucza głównego usługi BACKUP i zapisać kopię zapasową w bezpiecznej lokalizacji poza lokacją.

Transact-SQL konwencje składni

Syntax

CREATE MASTER KEY [ ENCRYPTION BY PASSWORD ='password' ]
[ ; ]

Arguments

PASSWORD ='password'

Hasło używane do szyfrowania klucza głównego w bazie danych. hasło musi spełniać wymagania zasad haseł systemu Windows komputera z uruchomionym wystąpieniem programu SQL Server. hasło jest opcjonalne w usługach SQL Database i Azure Synapse Analytics.

Remarks

Klucz główny bazy danych jest kluczem symetrycznym używanym do ochrony kluczy prywatnych certyfikatów i kluczy asymetrycznych znajdujących się w bazie danych oraz tajemnic w poświadczeniach z zakresem w bazie danych. Po utworzeniu klucz główny jest szyfrowany przy użyciu algorytmu AES_256 i hasła dostarczonego przez użytkownika. W programach SQL Server 2008 (10.0.x) i SQL Server 2008 R2 (10.50.x) jest używany algorytm Triple DES. Aby włączyć automatyczne odszyfrowywanie klucza głównego, kopia klucza jest szyfrowana przy użyciu klucza głównego usługi i przechowywanego zarówno w bazie danych, jak i w mastersystemie . Zazwyczaj kopia przechowywana w master jest w trybie dyskretnym aktualizowana za każdym razem, gdy klucz główny zostanie zmieniony. Tę wartość domyślną można zmienić przy użyciu opcji DROP ENCRYPTION BY SERVICE MASTER KEY (UPUŚĆ SZYFROWANIE WEDŁUG KLUCZA GŁÓWNEGO USŁUGI ) ALTER MASTER KEY (ALTER MASTER KEY). Klucz główny, który nie jest zaszyfrowany przez klucz główny usługi, musi zostać otwarty przy użyciu instrukcji OPEN MASTER KEY i hasła.

Kolumna is_master_key_encrypted_by_serversys.databases widoku wykazu w pliku master wskazuje, czy klucz główny bazy danych jest szyfrowany przez klucz główny usługi.

Informacje o kluczu głównym bazy danych są widoczne w sys.symmetric_keys widoku wykazu.

W przypadku programu SQL Server i parallel Data Warehouse klucz główny jest zwykle chroniony przez klucz główny usługi i co najmniej jedno hasło. W przypadku fizycznego przeniesienia bazy danych na inny serwer (wysyłka dziennika, przywracanie kopii zapasowej itp.), baza danych będzie zawierać kopię klucza głównego zaszyfrowanego przez oryginalny klucz główny usługi serwera (chyba że to szyfrowanie zostało jawnie usunięte przy użyciu ALTER MASTER KEY DDL), i kopię zaszyfrowaną przez każde hasło określone podczas CREATE MASTER KEY operacji lub kolejnych ALTER MASTER KEY DDL operacji. Aby odzyskać klucz główny i wszystkie dane zaszyfrowane przy użyciu klucza głównego jako katalog główny w hierarchii kluczy po przeniesieniu bazy danych, użytkownik będzie miał albo użyć OPEN MASTER KEY instrukcji przy użyciu jednego z haseł używanych do ochrony klucza głównego, przywrócić kopię zapasową klucza głównego lub przywrócić kopię zapasową oryginalnego klucza głównego usługi na nowym serwerze.

W przypadku usług SQL Database i Azure Synapse Analytics ochrona haseł nie jest uważana za mechanizm bezpieczeństwa, który zapobiega scenariuszowi utraty danych w sytuacjach, w których baza danych może zostać przeniesiona z jednego serwera do innego, ponieważ ochrona klucza głównego usługi w kluczu głównym jest zarządzana przez platformę Microsoft Azure. W związku z tym hasło klucza głównego jest opcjonalne w usługach SQL Database i Azure Synapse Analytics.

W przypadku usługi SQL Database klucz główny bazy danych można utworzyć automatycznie, aby chronić wpisy tajne w poświadczeniach w zakresie bazy danych używanych do inspekcji i innych funkcji, które wymagają poświadczeń o zakresie bazy danych w celu uwierzytelnienia w zasobie zewnętrznym, takim jak konto usługi Azure Storage. Klucz główny jest tworzony przy użyciu silnego losowo wybranego hasła. Użytkownicy nie mogą utworzyć klucza głównego w logicznej master bazie danych. Hasło klucza głównego jest nieznane firmie Microsoft i nie można go odnaleźć po utworzeniu. Z tego powodu zaleca się utworzenie klucza głównego bazy danych przed utworzeniem poświadczeń o określonym zakresie bazy danych.

Klucz główny usługi i klucze główne bazy danych są chronione przy użyciu algorytmu AES-256.

Permissions

Wymaga uprawnień CONTROL w bazie danych.

Examples

Użyj poniższego przykładu, aby utworzyć klucz główny bazy danych w bazie danych. Klucz jest szyfrowany przy użyciu hasła.

CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<strong password>';
GO

Sprawdź obecność nowego klucza: ##MS_DatabaseMasterKey##

SELECT * FROM sys.symmetric_keys;
GO