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.
platí pro:SQL Server
Tento článek popisuje, jak povolit transparentní šifrování dat (TDE) v SQL Serveru k ochraně šifrovacího klíče databáze pomocí asymetrického klíče uloženého v modulu pro správu rozšiřitelného klíče (EKM) pomocí jazyka Transact-SQL.
TDE šifruje úložiště celé databáze pomocí symetrického klíče zvaného šifrovací klíč databáze. Šifrovací klíč databáze lze také chránit pomocí certifikátu, který je chráněn hlavním klíčem databáze (DMK) master databáze. Další informace o ochraně šifrovacího klíče databáze pomocí DMK najdete v tématu Transparentní šifrování dat (TDE). Informace o konfiguraci transparentního šifrování dat při spuštění SQL Serveru na virtuálním počítači Azure najdete v tématu Rozšiřitelná správa klíčů pomocí služby Azure Key Vault (SQL Server). Informace o konfiguraci transparentního šifrování dat (TDE) pomocí klíče uloženého v Azure Key Vault najdete v tématu Použití konektoru SQL Server s funkcemi šifrování SQL.
Omezení
Abyste mohli vytvořit šifrovací klíč databáze a šifrovat databázi, musíte být vysoce privilegovaný uživatel (například správce systému). Modul EKM musí být schopen ověřit daného uživatele.
Při spuštění musí databázový stroj databázi otevřít. Měli byste vytvořit přihlašovací údaje, které bude ověřovat EKM, a přidat je k přihlášení založenému na asymetrickém klíči. Uživatelé se nemůžou přihlásit pomocí přihlášení, ale databázový stroj se může ověřit pomocí zařízení EKM.
Pokud asymetrický klíč uložený v modulu EKM ztratíte, nelze databázi otevřít SQL Serverem. Pokud poskytovatel EKM umožňuje zálohovat asymetrický klíč, měli byste vytvořit zálohu a uložit ji do zabezpečeného umístění.
Možnosti a parametry vyžadované vaším poskytovatelem EKM se můžou lišit od toho, co je uvedeno v následujícím příkladu kódu. Další informace získáte od poskytovatele EKM.
Dovolení
Tento článek používá následující oprávnění:
Pokud chcete změnit možnost konfigurace a spustit
RECONFIGUREpříkaz, musíte mít udělenáALTER SETTINGSoprávnění na úrovni serveru. OprávněníALTER SETTINGSimplicitně uchovává správce systému a správce serveru pevné role serveru.Vyžaduje
ALTER ANY CREDENTIALoprávnění.Vyžaduje
ALTER ANY LOGINoprávnění.Vyžaduje
CREATE ASYMMETRIC KEYoprávnění.Vyžaduje
CONTROLoprávnění k šifrování databáze.
Použijte Transact-SQL
Zkopírujte soubory poskytnuté poskytovatelem EKM do vhodného umístění na počítači s SQL Serverem. V tomto příkladu
C:\EKM_Filespoužijeme složku.Nainstalujte certifikáty do počítače podle požadavků poskytovatele EKM.
Poznámka
SQL Server neposkytuje poskytovatele EKM. Každý poskytovatel EKM může mít různé postupy pro instalaci, konfiguraci a autorizaci uživatelů. Pokud chcete tento krok dokončit, projděte si dokumentaci k poskytovateli EKM.
V Průzkumníku objektůse připojte k instanci databázového stroje.
Na panelu Standard vyberte Nový dotaz.
Zkopírujte a vložte následující příklad do okna dotazu a vyberte Spustit.
-- Enable advanced options. EXECUTE sp_configure 'show advanced options', 1; GO RECONFIGURE; GO -- Enable EKM provider EXECUTE sp_configure 'EKM provider enabled', 1; GO RECONFIGURE; GO -- Create a cryptographic provider, which we have chosen to call "EKM_Prov," based on an EKM provider CREATE CRYPTOGRAPHIC PROVIDER EKM_Prov FROM FILE = 'C:\EKM_Files\KeyProvFile.dll'; GO -- Create a credential that will be used by system administrators. CREATE CREDENTIAL sa_ekm_tde_cred WITH IDENTITY = 'Identity1', SECRET = '<password>' FOR CRYPTOGRAPHIC PROVIDER EKM_Prov; GO -- Add the credential to a high privileged user such as your -- own domain login in the format [DOMAIN\login]. ALTER LOGIN [Contoso\Mary] ADD CREDENTIAL sa_ekm_tde_cred; GO -- create an asymmetric key stored inside the EKM provider USE master; GO CREATE ASYMMETRIC KEY ekm_login_key FROM PROVIDER [EKM_Prov] WITH ALGORITHM = RSA_512, PROVIDER_KEY_NAME = 'SQL_Server_Key'; GO -- Create a credential that will be used by the Database Engine. CREATE CREDENTIAL ekm_tde_cred WITH IDENTITY = 'Identity2', SECRET = '<secret>' FOR CRYPTOGRAPHIC PROVIDER EKM_Prov; -- Add a login used by TDE, and add the new credential to the login. CREATE LOGIN EKM_Login FROM ASYMMETRIC KEY ekm_login_key; GO ALTER LOGIN EKM_Login ADD CREDENTIAL ekm_tde_cred; GO -- Create the database encryption key that will be used for TDE. USE AdventureWorks2022; GO CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_128 ENCRYPTION BY SERVER ASYMMETRIC KEY ekm_login_key; GO -- Alter the database to enable transparent data encryption. ALTER DATABASE AdventureWorks2022 SET ENCRYPTION ON; GO
Související obsah
- Transparentní šifrování dat pro SLUŽBU SQL Database, SQL Managed Instance a Azure Synapse Analytics
-
sp_configure (Transact-SQL) - VYTVOŘIT KRYPTOGRAFICKÝ POSKYTOVATEL (Transact-SQL)
- CREATE CREDENTIAL (Transact-SQL)
- VYTVOŘIT ASYMETRICKÝ KLÍČ (Transact-SQL)
- CREATE LOGIN (Transact-SQL)
- VYTVOŘIT KLÍČ ŠIFROVÁNÍ DATABÁZE (Transact-SQL)
- ALTER LOGIN (Transact-SQL)
- ALTER DATABASE (Transact-SQL)