Povolení TDE na SQL Serveru pomocí EKM
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 může být také chráněn pomocí certifikátu, který je zabezpečen hlavním klíčem hlavní databáze. Další informace o ochraně šifrovacího klíče databáze pomocí hlavního klíče databáze naleznete 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.
Než začnete
Omezení a restrikce
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). Tento uživatel musí být schopen být ověřen modulem EKM.
Po spuštění databázového stroje musí databázi otevřít. K tomu byste měli vytvořit přihlašovací údaje, které bude ověřovat EKM, a přidat ho k přihlášení založenému na asymetrického klíči. Uživatelé se nemůžou přihlásit pomocí přihlášení, ale databázový stroj se bude moct ověřit pomocí zařízení EKM.
Pokud dojde ke ztrátě asymetrického klíče uloženého v modulu EKM, nebude možné 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 mohou lišit od toho, co je uvedeno v následujícím příkladu kódu. Další informace získáte od poskytovatele EKM.
Bezpečnost
Dovolení
Tento článek používá následující oprávnění:
Pokud chcete změnit možnost konfigurace a spustit příkaz RECONFIGURE, musíte mít udělená oprávnění na úrovni serveru ALTER SETTINGS. Oprávnění ALTER SETTINGS je implicitně uděleno fixními serverovými rolemi sysadmin a serveradmin .
Vyžaduje oprávnění ALTER ANY CREDENTIAL.
Vyžaduje oprávnění ALTER ANY LOGIN.
Vyžaduje oprávnění CREATE ASYMMETRIC KEY.
K šifrování databáze vyžaduje oprávnění CONTROL.
Použití Transact-SQL
Povolení transparentního šifrování dat pomocí EKM
Zkopírujte soubory poskytnuté poskytovatelem EKM do vhodného umístění na počítači s SQL Serverem. V tomto příkladu použijeme složku C:\EKM_Files.
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ů. Poraďte se s dokumentací svého poskytovatele EKM, abyste tento krok dokončili.
V Průzkumníku objektůse připojte k instanci databázového stroje.
Na panelu Standard klikněte na Nový dotaz.
Zkopírujte a vložte následující příklad do okna dotazu a klikněte na Spustit.
-- Enable advanced options. sp_configure 'show advanced options', 1 ; GO RECONFIGURE ; GO -- Enable EKM provider 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 = 'q*gtev$0u#D1v' 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 = 'jeksi84&sLksi01@s' 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
Další informace najdete v následujících tématech:
Viz také
transparentního šifrování dat s využitím služby Azure SQL Database