Delen via


CREATE MASTER KEY (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL-database in Microsoft Fabric Preview

Hiermee maakt u een databasehoofdsleutel in de database.

Important

Transact-SQL syntaxis-conventies

Syntax

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

Arguments

PASSWORD ='password'

Het wachtwoord dat wordt gebruikt voor het versleutelen van de hoofdsleutel in de database. het wachtwoord moet voldoen aan de windows-wachtwoordbeleidsvereisten van de computer waarop het exemplaar van SQL Server wordt uitgevoerd. wachtwoord is optioneel in SQL Database en Azure Synapse Analytics.

Remarks

De hoofdsleutel van de database is een symmetrische sleutel die wordt gebruikt voor het beveiligen van de persoonlijke sleutels van certificaten en asymmetrische sleutels die aanwezig zijn in de database en geheimen in referenties met databasebereik. Wanneer deze wordt gemaakt, wordt de hoofdsleutel versleuteld met behulp van het AES_256-algoritme en een door de gebruiker opgegeven wachtwoord. In SQL Server 2008 (10.0.x) en SQL Server 2008 R2 (10.50.x) wordt het Triple DES-algoritme gebruikt. Als u de automatische ontsleuteling van de hoofdsleutel wilt inschakelen, wordt een kopie van de sleutel versleuteld met behulp van de hoofdsleutel van de service en opgeslagen in zowel de database als in master. Normaal gesproken wordt de kopie die is master opgeslagen, op de achtergrond bijgewerkt wanneer de hoofdsleutel wordt gewijzigd. Deze standaardwaarde kan worden gewijzigd met behulp van de optie DROP ENCRYPTION BY SERVICE MASTER KEY van ALTER MASTER KEY. Een hoofdsleutel die niet is versleuteld door de hoofdsleutel van de service, moet worden geopend met behulp van de INSTRUCTIE OPEN MASTER KEY en een wachtwoord.

De is_master_key_encrypted_by_server kolom van de sys.databases catalogusweergave geeft master aan of de hoofdsleutel van de database is versleuteld door de hoofdsleutel van de service.

Informatie over de hoofdsleutel van de database is zichtbaar in de sys.symmetric_keys catalogusweergave.

Voor SQL Server en Parallel Data Warehouse wordt de hoofdsleutel doorgaans beveiligd door de hoofdsleutel van de service en ten minste één wachtwoord. Als de database fysiek wordt verplaatst naar een andere server (logboekverzending, back-up herstellen, enzovoort), bevat de database een kopie van de hoofdsleutel die is versleuteld door de oorspronkelijke serverservicehoofdsleutel (tenzij deze versleuteling expliciet is verwijderd met behulp ALTER MASTER KEY DDLvan) en een kopie ervan die is versleuteld met elk wachtwoord dat is opgegeven tijdens CREATE MASTER KEY of volgende ALTER MASTER KEY DDL bewerkingen. Als u de hoofdsleutel wilt herstellen en alle gegevens die zijn versleuteld met behulp van de hoofdsleutel als hoofdsleutel in de sleutelhiërarchie nadat de database is verplaatst, heeft de gebruiker een gebruiksinstructie OPEN MASTER KEY met behulp van een van de wachtwoorden die worden gebruikt om de hoofdsleutel te beveiligen, een back-up van de hoofdsleutel te herstellen of een back-up van de oorspronkelijke servicehoofdsleutel op de nieuwe server te herstellen.

Voor SQL Database en Azure Synapse Analytics wordt wachtwoordbeveiliging niet beschouwd als een veiligheidsmechanisme om gegevensverlies te voorkomen in situaties waarin de database van de ene server naar de andere kan worden verplaatst, omdat de beveiliging van de hoofdsleutel van de service wordt beheerd door het Microsoft Azure-platform. Daarom is het hoofdsleutelwachtwoord optioneel in SQL Database en Azure Synapse Analytics.

Voor SQL Database kan de hoofdsleutel van de database automatisch worden gemaakt om de geheimen te beveiligen in databasereferenties die worden gebruikt voor controle en andere functies waarvoor een referentie in het databasebereik is vereist voor verificatie bij een externe resource, zoals een Azure Storage-account. De hoofdsleutel wordt gemaakt met een sterk willekeurig geselecteerd wachtwoord. Gebruikers kunnen de hoofdsleutel niet maken in een logische master database. Het hoofdsleutelwachtwoord is onbekend bij Microsoft en kan niet worden gedetecteerd na het maken. Daarom wordt het maken van een databasehoofdsleutel aanbevolen voordat u een databasereferentie binnen het bereik maakt.

De hoofdsleutel van de service en de databasehoofdsleutel worden beveiligd met behulp van het AES-256-algoritme.

Permissions

Vereist control-machtiging voor de database.

Examples

Gebruik het volgende voorbeeld om een databasehoofdsleutel in een database te maken. De sleutel wordt versleuteld met behulp van een wachtwoord.

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

Controleer de aanwezigheid van de nieuwe sleutel: ##MS_DatabaseMasterKey##

SELECT * FROM sys.symmetric_keys;
GO