Dela via


SKAPA HUVUDNYCKEL (Transact-SQL)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalysplattformssystem (PDW)SQL-databas i Förhandsversion av Microsoft Fabric

Skapar en databashuvudnyckel i databasen.

Important

Transact-SQL syntaxkonventioner

Syntax

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

Arguments

PASSWORD ='password'

Lösenordet som används för att kryptera huvudnyckeln i databasen. lösenordet måste uppfylla kraven för Windows-lösenordsprinciper för den dator som kör instansen av SQL Server. lösenord är valfritt i SQL Database och Azure Synapse Analytics.

Remarks

Huvudnyckeln för databasen är en symmetrisk nyckel som används för att skydda de privata nycklarna för certifikat och asymmetriska nycklar som finns i databasen och hemligheter i databasomfångsbegränsade autentiseringsuppgifter. När den skapas krypteras huvudnyckeln med hjälp av AES_256-algoritmen och ett lösenord från användaren. I SQL Server 2008 (10.0.x) och SQL Server 2008 R2 (10.50.x) används Triple DES-algoritmen. För att aktivera automatisk dekryptering av huvudnyckeln krypteras en kopia av nyckeln med hjälp av tjänstens huvudnyckel och lagras i både databasen och i master. Normalt uppdateras kopian som lagras i master tyst när huvudnyckeln ändras. Det här standardvärdet kan ändras med hjälp av alternativet DROP ENCRYPTION BY SERVICE MASTER KEY (SLÄPP KRYPTERING EFTER TJÄNSTHUVUDNYCKEL) i ALTER MASTER KEY( ALTER MASTER KEY). En huvudnyckel som inte krypteras av tjänstens huvudnyckel måste öppnas med hjälp av INSTRUKTIONEN ÖPPNA HUVUDNYCKEL och ett lösenord.

Kolumnen is_master_key_encrypted_by_server i sys.databases katalogvyn i master anger om databashuvudnyckeln krypteras av tjänstens huvudnyckel.

Information om databasens huvudnyckel visas i sys.symmetric_keys katalogvyn.

För SQL Server och Parallel Data Warehouse skyddas huvudnyckeln vanligtvis av tjänstens huvudnyckel och minst ett lösenord. Om databasen flyttas fysiskt till en annan server (loggleverans, återställning av säkerhetskopia osv.) innehåller databasen en kopia av huvudnyckeln som krypterats av den ursprungliga huvudnyckeln för servertjänsten (såvida inte krypteringen uttryckligen togs bort med ), ALTER MASTER KEY DDLoch en kopia av den krypteras av varje lösenord som anges under en CREATE MASTER KEY eller flera efterföljande ALTER MASTER KEY DDL åtgärder. För att återställa huvudnyckeln och alla data som krypterats med huvudnyckeln som rot i nyckelhierarkin efter att databasen har flyttats, har användaren antingen användningsinstruktor OPEN MASTER KEY med något av de lösenord som används för att skydda huvudnyckeln, återställa en säkerhetskopia av huvudnyckeln eller återställa en säkerhetskopia av den ursprungliga huvudnyckeln för tjänsten på den nya servern.

För SQL Database och Azure Synapse Analytics anses inte lösenordsskyddet vara en säkerhetsmekanism för att förhindra ett dataförlustscenario i situationer där databasen kan flyttas från en server till en annan, eftersom tjänstens huvudnyckelskydd på huvudnyckeln hanteras av Microsoft Azure-plattformen. Därför är huvudnyckellösenordet valfritt i SQL Database och Azure Synapse Analytics.

För SQL Database kan databashuvudnyckeln skapas automatiskt för att skydda hemligheterna i databasomfattningsautentiseringsuppgifter som används för granskning och andra funktioner som kräver en databasomfattande autentiseringsuppgift för att autentisera till en extern resurs, till exempel ett Azure Storage-konto. Huvudnyckeln skapas med ett starkt slumpmässigt valt lösenord. Användare kan inte skapa huvudnyckeln på en logisk master databas. Huvudnyckellösenordet är okänt för Microsoft och kan inte identifieras när det har skapats. Därför rekommenderar vi att du skapar en huvudnyckel för databasen innan du skapar en databasomfångsbegränsad autentiseringsuppgift.

Tjänstens huvudnyckel och databashuvudnycklar skyddas med hjälp av AES-256-algoritmen.

Permissions

Kräver KONTROLL-behörighet för databasen.

Examples

Använd följande exempel för att skapa en databashuvudnyckel i en databas. Nyckeln krypteras med ett lösenord.

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

Kontrollera förekomsten av den nya nyckeln: ##MS_DatabaseMasterKey##

SELECT * FROM sys.symmetric_keys;
GO