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 vás ověřit.
Při spuštění musí databázový stroj databázi otevřít. Vytvořte přihlašovací údaje, které EKM ověřuje, a přidejte je k přihlášení na základě asymetrického klíče. 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 ztratíte asymetrický klíč uložený v modulu EKM, SQL Server nemůže otevřít databázi. Pokud vám poskytovatel EKM umožňuje zálohovat asymetrický klíč, vytvořte zálohu a uložte 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í
Potřebujete následující oprávnění:
Pokud chcete změnit možnost konfigurace a spustit
RECONFIGUREpříkaz, potřebujeteALTER SETTINGSoprávnění na úrovni serveru. Pevné role sysadmin a serveradmin implicitně uchovávajíALTER SETTINGSoprávnění.Oprávnění
ALTER ANY CREDENTIAL.Oprávnění
ALTER ANY LOGIN.Oprávnění
CREATE ASYMMETRIC KEY.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_2048, 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)