Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, Transact-SQL ile genişletilebilir anahtar yönetimi (EKM) modülünde depolanan asimetrik anahtarı kullanarak veritabanı şifreleme anahtarını korumak için SQL Server'da saydam veri şifrelemenin (TDE) nasıl etkinleştirileceği açıklanır.
TDE, veritabanı şifreleme anahtarı adı verilen bir simetrik anahtar kullanarak veritabanının tamamının depolamasını şifreler. Veritabanı şifreleme anahtarı, veritabanının veritabanı ana anahtarı (DMK) master tarafından korunan bir sertifika kullanılarak da korunabilir. DMK kullanarak veritabanı şifreleme anahtarını koruma hakkında daha fazla bilgi için bkz . Saydam veri şifrelemesi (TDE). SQL Server bir Azure Sanal Makinesinde çalışırken TDE'yi yapılandırma hakkında bilgi için bkz. Azure Key Vault (SQL Server) Kullanarak Genişletilebilir Anahtar Yönetimi. Azure anahtar kasasında bir anahtar kullanarak TDE'yi yapılandırma hakkında bilgi için bkz. SQL Şifreleme Özellikleri ile SQL Server Bağlayıcısı'nı kullanma.
Sınırlamalar
Veritabanı şifreleme anahtarı oluşturmak ve veritabanını şifrelemek için yüksek ayrıcalıklı bir kullanıcı (sistem yöneticisi gibi) olmanız gerekir. EKM modülünün bu kullanıcının kimliğini doğrulayabilmesi gerekir.
Başlangıçta Veritabanı Altyapısı veritabanını açmalıdır. EKM tarafından kimliği doğrulanacak bir kimlik bilgisi oluşturmanız ve bunu asimetrik anahtarı temel alan bir oturum açma bilgilerine eklemeniz gerekir. Kullanıcılar bu oturum açma bilgilerini kullanarak oturum açamaz, ancak Veritabanı Altyapısı EKM cihazıyla kimliğini doğrulayabilir.
EKM modülünde depolanan asimetrik anahtar kaybolursa veritabanı SQL Server tarafından açılamaz. EKM sağlayıcısı asimetrik anahtarı yedeklemenize izin veriyorsa bir yedekleme oluşturup güvenli bir konumda depolamanız gerekir.
EKM sağlayıcınızın gerektirdiği seçenekler ve parametreler, aşağıdaki kod örneğinde sağlanandan farklı olabilir. Daha fazla bilgi için ekm sağlayıcınıza bakın.
Permissions
Bu makalede aşağıdaki izinler kullanılır:
Yapılandırma seçeneğini değiştirmek ve deyimini
RECONFIGUREçalıştırmak için sunucu düzeyinde izin verilmelidirALTER SETTINGS. İzinALTER SETTINGS, sysadmin ve serveradmin sabit sunucu rolleri tarafından örtük olarak tutulur.İzin gerektirir
ALTER ANY CREDENTIAL.İzin gerektirir
ALTER ANY LOGIN.İzin gerektirir
CREATE ASYMMETRIC KEY.CONTROLVeritabanını şifrelemek için veritabanında izin gerektirir.
Transact-SQL kullanma
EKM sağlayıcısı tarafından sağlanan dosyaları SQL Server bilgisayarında uygun bir konuma kopyalayın. Bu örnekte klasörünü kullanacağız
C:\EKM_Files.EKM sağlayıcınızın gerektirdiği şekilde bilgisayara sertifika yükleyin.
Uyarı
SQL Server bir EKM sağlayıcısı sağlamaz. Her EKM sağlayıcısının kullanıcıları yüklemek, yapılandırmak ve yetkilendirmek için farklı yordamları olabilir. Bu adımı tamamlamak için EKM sağlayıcı belgelerinize başvurun.
Nesne Gezgini'nde Veritabanı Motoru'nun bir örneğine bağlanın.
Standart araç çubuğunda, Yeni Sorgu'yu seçin.
Aşağıdaki örneği kopyalayıp sorgu penceresine yapıştırın ve Yürüt'e tıklayın.
-- 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
İlgili içerik
- SQL Veritabanı, SQL Yönetilen Örneği ve Azure Synapse Analytics için saydam veri şifrelemesi
- sp_configure (Transact-SQL)
- ŞIFRELEME SAĞLAYıCıSı OLUŞTURMA (Transact-SQL)
- KREDİ GİRİŞİ OLUŞTUR (Transact-SQL)
- ASIMETRIK ANAHTAR OLUŞTURMA (Transact-SQL)
- GİRİŞ OLUŞTUR (Transact-SQL)
- CREATE DATABASE ENCRYPTION KEY (Transact-SQL)
- ALTER LOGIN (Transact-SQL)
- VERİ TABANINI DEĞİŞTİR (Transact-SQL)