شغّل DuoKey SQL EKM وشفّر قاعدة بياناتك الأولى
يرشدك دليل البدء السريع هذا خلال تشفير قاعدة بيانات SQL Server الأولى باستخدام DuoKey EKM. بحلول النهاية، سيكون لديك:
تطبيق SQL EKM مُكوَّن في منصة DuoKey
موفّر تشفير مثبّت على SQL Server
SQL Server مُكوَّن مع مصادقة DuoKey
قاعدة بيانات اختبارية مشفّرة باستخدام TDE
انتقل إلى منصة DuoKey السحابية وسجّل الدخول ببيانات اعتمادك.
انتقل إلى Apps ← Create New APP ← حدّد DuoKey for SQL ← انقر Install Now
نزّل ملف الإعداد ودوّن بأمان:
استخرج ملف الإعداد المضغوط ZIP الذي تم تنزيله إلى موقع مؤقت.
انقر بزر الماوس الأيمن على setup.exe ← Run as Administrator
تأكّد من وجود ملفات DLL هذه في C:\Windows\System32:
DuoKeyCryptoProvider.dlllibcurl.dllzlib1.dllfmt.dll-- Verify DLL is accessible by SQL Server
EXEC xp_fileexist 'C:\Windows\System32\DuoKeyCryptoProvider.dll';
GOافتح SQL Server Management Studio (SSMS)، واتصل بنسختك، ونفّذ نص التكوين التالي. استبدل جميع العناصر النائبة بقيمك الفعلية.
-- =============================================
-- DuoKey SQL EKM Configuration Script
-- Replace <placeholders> with your values
-- =============================================
-- Step 1: Enable EKM
sp_configure 'show advanced', 1;
GO
RECONFIGURE;
GO
sp_configure 'EKM provider enabled', 1;
GO
RECONFIGURE;
GO
-- Step 2: Create Cryptographic Provider
CREATE CRYPTOGRAPHIC PROVIDER DuoKeyProvider
FROM FILE = 'C:\Windows\System32\DuoKeyCryptoProvider.dll';
GO
-- Step 3: Create Credentials
-- Format: client_secret<!COCKPITPW!>password<!COCKPITPW!>CockpitIntrospectPwd
CREATE CREDENTIAL DuoKeyCredential
WITH IDENTITY = '<your_client_id>',
SECRET = '<your_client_secret><!COCKPITPW!><your_password><!COCKPITPW!>CockpitIntrospectPwd'
FOR CRYPTOGRAPHIC PROVIDER DuoKeyProvider;
GO
-- Step 4: Map Credential to Login
ALTER LOGIN [sa]
ADD CREDENTIAL DuoKeyCredential;
GO
-- Step 5: Create Asymmetric Key
USE master;
GO
CREATE ASYMMETRIC KEY SQL_EKM_Key
FROM PROVIDER DuoKeyProvider
WITH ALGORITHM = RSA_2048,
PROVIDER_KEY_NAME = 'SQL_EKM_Key',
CREATION_DISPOSITION = CREATE_NEW;
GO
-- Step 6: Create Key Credentials
CREATE CREDENTIAL SQL_EKM_Key_Cred
WITH IDENTITY = '<your_client_id>',
SECRET = '<your_client_secret><!COCKPITPW!><your_password><!COCKPITPW!>CockpitIntrospectPwd'
FOR CRYPTOGRAPHIC PROVIDER DuoKeyProvider;
GO
-- Step 7: Create Key Login
CREATE LOGIN SQL_EKM_Key_Login
FROM ASYMMETRIC KEY SQL_EKM_Key;
GO
ALTER LOGIN SQL_EKM_Key_Login
ADD CREDENTIAL SQL_EKM_Key_Cred;
GO
PRINT 'Configuration complete. Enable Encrypt operation in DuoKey Cockpit.';
GOقبل الانتقال إلى المرحلة 4، يجب تمكين عملية Encrypt في DuoKey:
SQL_EKM_Keyالآن دعنا ننشئ قاعدة بيانات اختبارية ونشفّرها باستخدام TDE مع DuoKey EKM.
-- Create test database
CREATE DATABASE TestEncryptedDB;
GO
-- Create Database Encryption Key
USE TestEncryptedDB;
GO
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_256
ENCRYPTION BY SERVER ASYMMETRIC KEY SQL_EKM_Key;
GO
-- Enable encryption
ALTER DATABASE TestEncryptedDB
SET ENCRYPTION ON;
GO
-- Verify encryption status
SELECT
DB_NAME(database_id) AS [Database],
CASE encryption_state
WHEN 0 THEN 'No encryption key'
WHEN 1 THEN 'Unencrypted'
WHEN 2 THEN 'Encryption in progress'
WHEN 3 THEN 'Encrypted'
WHEN 4 THEN 'Key change in progress'
WHEN 5 THEN 'Decryption in progress'
END AS [Status],
percent_complete AS [Progress %]
FROM sys.dm_database_encryption_keys
WHERE DB_NAME(database_id) = 'TestEncryptedDB';
GO3 تعني أن قاعدة البيانات مشفّرة بالكامل. الحالة 2 تعني أن التشفير لا يزال قيد التقدّم - انتظر حتى يكتمل قبل المتابعة.شغّل هذه الاستعلامات للتحقّق من أن إعدادك الكامل يعمل بشكل صحيح:
-- 1. EKM Provider Status
SELECT name, guid, version
FROM sys.cryptographic_providers;
GO
-- 2. Credentials Created
SELECT name, credential_identity, create_date
FROM sys.credentials
WHERE name LIKE '%DuoKey%' OR name LIKE '%EKM%';
GO
-- 3. Asymmetric Keys
SELECT name, algorithm_desc, key_length, thumbprint
FROM sys.asymmetric_keys;
GO
-- 4. Encrypted Databases
SELECT
d.name AS DatabaseName,
d.is_encrypted,
dek.encryption_state
FROM sys.databases d
LEFT JOIN sys.dm_database_encryption_keys dek
ON d.database_id = dek.database_id
WHERE d.is_encrypted = 1;
GO| المشكلة | السبب | الحل |
|---|---|---|
| EKM غير مُمكَّن | إصدار SQL Server أو تكوينه | تحقّق من الإصدار؛ نفّذ أوامر sp_configure |
| تعذّر إنشاء الموفّر | لم يُعثر على DLL | تحقّق من وجود DuoKeyCryptoProvider.dll في System32 |
| خطأ في تنسيق بيانات الاعتماد | تنسيق SECRET غير صالح | تحقّق من الفواصل <!COCKPITPW!> |
| فشل إنشاء المفتاح | Encrypt غير مُمكَّن | مكّن عملية Encrypt في DuoKey Cockpit |
| انتهاء مهلة الاتصال | مشكلة في الشبكة | تحقّق من وصول HTTPS 443 إلى منصة DuoKey |
تهانينا! لقد أعددت DuoKey SQL EKM بنجاح وشفّرت قاعدة بياناتك الأولى. إليك ما يمكنك استكشافه بعد ذلك: