Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Applies to:SQL Server
Azure SQL Managed Instance
Analytics Platform System (PDW)
Vytvoří šifrovací klíč pro transparentní šifrování databáze. Další informace o transparent data encryption (TDE) najdete v tématu Transparent Data Encryption (TDE).
Syntaxe
-- Syntax for SQL Server
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = { AES_128 | AES_192 | AES_256 | TRIPLE_DES_3KEY }
ENCRYPTION BY SERVER
{
CERTIFICATE Encryptor_Name |
ASYMMETRIC KEY Encryptor_Name
}
[ ; ]
-- Syntax for Parallel Data Warehouse
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = { AES_128 | AES_192 | AES_256 | TRIPLE_DES_3KEY }
ENCRYPTION BY SERVER CERTIFICATE Encryptor_Name
[ ; ]
Argumenty
WITH ALGORITHM = { AES_128 | AES_192 | AES_256 | TRIPLE_DES_3KEY }
Určuje šifrovací algoritmus šifrovacího klíče.
Výstraha
Počínaje SQL Server 2016 jsou všechny algoritmy kromě AES_128, AES_192 a AES_256 zastaralé. Pokud chcete použít starší algoritmy (nedoporučuje se), musíte databázi nastavit na úroveň kompatibility databáze 120 nebo nižší.
ŠIFROVÁNÍ PODLE CERTIFIKÁTU SERVERU Encryptor_Name
Určuje název šifrovacího klíče databáze, který se používá k šifrování šifrovacího klíče databáze.
ENCRYPTION BY SERVER ASYMMETRIC KEY Encryptor_Name Určuje název asymetrického klíče použitého k šifrování šifrovacího klíče databáze. Pokud chcete šifrovací klíč databáze zašifrovat asymetrickým klíčem, musí se asymetrický klíč nacházet na rozšiřitelném poskytovateli správy klíčů.
Poznámky
Šifrovací klíč databáze se vyžaduje před šifrováním databáze pomocí transparentního šifrování dat (TDE). Pokud je databáze transparentně zašifrovaná, celá databáze se zašifruje na úrovni souboru bez jakýchkoli zvláštních úprav kódu. Certifikát nebo asymetrický klíč, který šifruje šifrovací klíč databáze, musí být umístěn v master systémové databázi.
Certifikáty nebo asymetrického klíče používané pro transparentní šifrování dat jsou omezené na velikost privátního klíče 3072 bitů.
Příkazy pro šifrování databáze jsou povolené pouze u uživatelských databází.
Šifrovací klíč databáze nelze z databáze exportovat. Je k dispozici pouze pro systém, pro uživatele, kteří mají na serveru oprávnění k ladění, a pro uživatele, kteří mají přístup k certifikátům, které šifrují a dešifrují šifrovací klíč databáze.
Šifrovací klíč databáze se při změně vlastníka databáze (dbo) nemusí znovu vygenerovat.
Pro databázi SQL Database se automaticky vytvoří šifrovací klíč databáze. Pomocí příkazu CREATE DATABASE ENCRYPTION KEY nemusíte vytvářet klíč.
Povolení
Vyžaduje oprávnění CONTROL k databázi a oprávnění VIEW DEFINITION pro certifikát nebo asymetrický klíč, který se používá k šifrování šifrovacího klíče databáze.
Příklady
Další příklady použití transparentního šifrování dat najdete v tématech Transparent Data Encryption (TDE), Enable TDE na SQL Server pomocí EKM a Extensible Správa klíčů pomocí Azure Key Vault (SQL Server).
A. Vytvoření šifrovacího klíče databáze
Následující příklad vytvoří šifrovací klíč databáze pomocí AES_256 algoritmu a chrání privátní klíč pomocí certifikátu s názvem MyServerCert.
USE AdventureWorks2022;
GO
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_256
ENCRYPTION BY SERVER CERTIFICATE MyServerCert;
GO
B. Obnovení databáze šifrované transparentním šifrováním dat do jiné instance
Pokud chcete obnovit databázi zašifrovanou transparentním šifrováním dat do jiné instance SQL Server, musíte nejprve importovat certifikát, který chrání šifrovací klíč databáze. Zálohujte certifikát a jeho privátní klíč ze zdrojového serveru a pak před obnovením databáze vytvořte certifikát v cílové instanci.
Na zdrojovém serveru zálohujte certifikát:
-- On the SOURCE server
USE master;
GO
BACKUP CERTIFICATE MyServerCert
TO FILE = 'C:\Backup\MyServerCert.cer'
WITH PRIVATE KEY (
FILE = 'C:\Backup\MyServerCert.pvk',
ENCRYPTION BY PASSWORD = '<strong_password>'
);
GO
Na cílovém serveru vytvořte certifikát ze záložních souborů a pak obnovte databázi:
-- On the TARGET server
USE master;
GO
CREATE CERTIFICATE MyServerCert
FROM FILE = 'C:\Backup\MyServerCert.cer'
WITH PRIVATE KEY (
FILE = 'C:\Backup\MyServerCert.pvk',
DECRYPTION BY PASSWORD = '<strong_password>'
);
GO
-- Now you can restore the TDE-encrypted database
RESTORE DATABASE AdventureWorks2022
FROM DISK = 'C:\Backup\AdventureWorks2022.bak'
WITH MOVE 'AdventureWorks2022_Data' TO 'D:\Data\AdventureWorks2022.mdf',
MOVE 'AdventureWorks2022_Log' TO 'D:\Data\AdventureWorks2022.ldf';
GO
Důležité
Certifikát musí mít stejný název a musí být vytvořen ze stejných záložních souborů. Pokud se certifikát neshoduje, obnovení selže s chybou šifrovacího klíče.
Související obsah
- Transparent Data Encryption (TDE)
- šifrování SQL Server
- SQL Server a šifrovací klíče databáze (Database Engine)
- Hierarchie šifrování
- možnosti ALTER DATABASE SET (Transact-SQL)
- šifrovací klíč databáze ALTER (Transact-SQL)
- DROP DATABASE ENCRYPTION KEY (Transact-SQL)
- sys.dm_database_encryption_keys (Transact-SQL)
- BACKUP CERTIFICATE (Transact-SQL)
- CREATE CERTIFICATE (Transact-SQL)