إنتقل إلى المحتوى الرئيسي

البدء

ينطبق على:
SQL Server 2016+Windows Server 2012 R2+Windows onlyEnterprise / Developer

نظرة عامة​

يوفّر DuoKey SQL EKM إدارة مفاتيح خارجية لتشفير البيانات الشفاف (TDE) في Microsoft SQL Server. يرشدك هذا الدليل عبر الخطوات الأساسية لتشفير قاعدة بياناتك الأولى.

المتطلبات المسبقة

  • Microsoft SQL Server 2016 أو أحدث (إصدار Enterprise أو Developer على نظام Windows)
  • Windows Server 2012 R2 أو أحدث (أو Windows 10/11 للتطوير)
  • امتيازات المسؤول على جهاز SQL Server
  • تثبيت SQL Server Management Studio (SSMS)
  • الوصول إلى منصة DuoKey السحابية
  • اتصال شبكي (منفذ HTTPS 443) بمنصة DuoKey
  • أن يكون مزوّد EKM على هيئة DLL موقّع بتوقيع Authenticode وأن تكون سلسلة توقيعه موثوقة على الجهاز
  • وجود ملف تكوين المزوّد config.toml في المسار C:\ProgramData\DKE\EKM\config.toml

خطوات البدء السريع​

1

إنشاء تطبيق SQL EKM في منصة DuoKey

أنشئ تطبيق SQL EKM الخاص بك في منصة DuoKey:

  1. سجّل الدخول إلى منصة DuoKey السحابية
  2. انتقل إلى قسم Apps
  3. انقر على "Create New APP"
  4. حدد "DuoKey for SQL" وانقر على "Install Now"
  5. املأ التفاصيل المطلوبة وعيّن الأدوار
  6. حدد خزنة (vault) لمفاتيحك
  7. نزّل ملف الإعداد
  8. احفظ مفتاح الوكيل المُسجَّل (enrolled agent key) المرفق مع ملف الإعداد
نصيحة

حافظ على أمان ملف الإعداد ومفتاح الوكيل المُسجَّل الخاص به - فمفتاح الوكيل هو القيمة الوحيدة التي يستخدمها SQL Server للمصادقة لدى DuoKey.

2

تثبيت مزوّد EKM على SQL Server

انشر مزوّد DuoKey EKM على SQL Server الخاص بك. المزوّد عبارة عن ملف DLL واحد موقّع بتوقيع Authenticode، وهو dke_ekm_provider.dll، يُسلَّم عبر ملف الإعداد من تطبيق DuoKey.

  1. شغّل ملف الإعداد من تطبيق DuoKey لنشر المزوّد
  2. ضع dke_ekm_provider.dll في مجلد يمكن لخدمة SQL Server قراءته، على سبيل المثال C:\Program Files\DKE\EKM (وليس C:\Windows\System32)
  3. تأكد من وجود ملف تكوين المزوّد config.toml في المسار C:\ProgramData\DKE\EKM\config.toml
  4. تأكد من أن ملف DLL موقّع وأن سلسلة توقيعه موثوقة على الجهاز
مهم

يرفض SQL Server تحميل ملف DLL خاص بـ EKM غير موقّع. يجب أن يكون المزوّد موقّعًا بتوقيع Authenticode وأن تكون سلسلة توقيعه موثوقة على جهاز SQL Server قبل أن يتسنى تسجيله.

ملاحظة

المزوّد عبارة عن ملف DLL واحد. لا توجد مكتبات مساعدة منفصلة لتثبيتها، ولا مفاتيح تسجيل (registry) لتكوينها - إذ تُوجد جميع إعدادات الاتصال في config.toml الذي يسلّمه ملف الإعداد.

3

تكوين SQL Server

كوّن SQL Server لاستخدام مزوّد DuoKey EKM:

تمكين EKMSQL
-- Enable advanced options
sp_configure 'show advanced', 1;
GO
RECONFIGURE;
GO

-- Enable EKM provider
sp_configure 'EKM provider enabled', 1;
GO
RECONFIGURE;
GO
تسجيل المزوّد التشفيريSQL
CREATE CRYPTOGRAPHIC PROVIDER DuoKeyProvider
FROM FILE = 'C:\Program Files\DKE\EKM\dke_ekm_provider.dll';
GO
إنشاء بيانات اعتماد المزوّدSQL
-- Create provider credential (SECRET is the enrolled agent key from the setup file)
CREATE CREDENTIAL DuoKeyCredential
WITH IDENTITY = 'dke-ekm-service',
SECRET = '<agent-key>'
FOR CRYPTOGRAPHIC PROVIDER DuoKeyProvider;
GO

-- Map credential to login
ALTER LOGIN [sa]
ADD CREDENTIAL DuoKeyCredential;
GO
مهم

قيمة SECRET هي مفتاح الوكيل المُسجَّل الوحيد من ملف الإعداد الخاص بك - استبدل <agent-key> بتلك القيمة. أما IDENTITY فهي مجرد تسمية؛ يمكن أن تكون أي اسم تختاره.

فتح المفتاح الرئيسي في الخزنةSQL
-- Open the pre-provisioned RSA-2048 master key that lives in the DuoKey vault.
-- PROVIDER_KEY_NAME must match the master key name provisioned for your app.
USE master;
CREATE ASYMMETRIC KEY SQL_EKM_Key
FROM PROVIDER DuoKeyProvider
WITH PROVIDER_KEY_NAME = 'TDE_MASTER',
CREATION_DISPOSITION = OPEN_EXISTING;
GO
ملاحظة

المفتاح الرئيسي RSA-2048 مُهيّأ مسبقًا في خزنة DuoKey ولا يغادرها أبدًا. استخدم CREATION_DISPOSITION = OPEN_EXISTING للإشارة إلى المفتاح الموجود - لا تنشئ مفتاحًا جديدًا.

إنشاء تسجيل دخول وبيانات اعتماد TDE من المفتاحSQL
-- Create a login mapped to the asymmetric key (used by TDE)
CREATE LOGIN SQL_EKM_Login
FROM ASYMMETRIC KEY SQL_EKM_Key;
GO

-- Create the TDE credential (SECRET is again the enrolled agent key)
CREATE CREDENTIAL SQL_EKM_TdeCred
WITH IDENTITY = 'dke-ekm-tde',
SECRET = '<agent-key>'
FOR CRYPTOGRAPHIC PROVIDER DuoKeyProvider;
GO

-- Map the TDE credential to the key login
ALTER LOGIN SQL_EKM_Login
ADD CREDENTIAL SQL_EKM_TdeCred;
GO
4

تشفير قاعدة بياناتك الأولى

إنشاء قاعدة بيانات اختبارSQL
-- Create a test database
CREATE DATABASE TestDB;
GO

USE TestDB;
CREATE TABLE Employees (
  ID INT PRIMARY KEY,
  Name VARCHAR(100),
  SSN VARCHAR(11)
);
GO
تمكين تشفير TDESQL
-- Create Database Encryption Key
USE TestDB;
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_256
ENCRYPTION BY SERVER ASYMMETRIC KEY SQL_EKM_Key;
GO

-- Enable encryption
ALTER DATABASE TestDB
SET ENCRYPTION ON;
GO
التحقق من حالة التشفيرSQL
SELECT
  DB_NAME(database_id) AS DatabaseName,
  encryption_state,
  CASE encryption_state
      WHEN 3 THEN 'Encrypted'
      WHEN 2 THEN 'Encryption in progress'
      ELSE 'Other'
  END AS Status,
  percent_complete
FROM sys.dm_database_encryption_keys
WHERE DB_NAME(database_id) = 'TestDB';
GO
5

الاختبار والتحقق

اختبار عمليات البياناتSQL
-- Insert test data
USE TestDB;
INSERT INTO Employees (ID, Name, SSN)
VALUES (1, 'John Doe', '123-45-6789');
GO

-- Query data (works transparently)
SELECT * FROM Employees;
GO

-- Final verification
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.name = 'TestDB';
GO
نصيحة

عندما تكون encryption_state = 3، تكون قاعدة بياناتك مشفّرة بالكامل ومحمية بواسطة DuoKey.

مرجع سريع لاستكشاف الأخطاء وإصلاحها​

المشكلات الشائعة والحلول

المشكلةالحل السريع
EKM غير مُمكّنsp_configure 'EKM provider enabled', 1; RECONFIGURE;
تعذّر فتح المفتاحتحقق من أن PROVIDER_KEY_NAME يطابق المفتاح الرئيسي المُهيّأ واستخدم CREATION_DISPOSITION = OPEN_EXISTING
فشل تحميل المزوّدتأكد من أن ملف DLL موقّع وموثوق، وأن المسار في FROM FILE قابل للقراءة من قِبل خدمة SQL Server
لم يُعثر على DLLتحقق من وجود dke_ekm_provider.dll في مجلد التثبيت، مثل C:\Program Files\DKE\EKM
خطأ في الاتصالتحقق من الاتصال الشبكي بـ DuoKey (المنفذ 443) ومن ملف config.toml في C:\ProgramData\DKE\EKM
خطأ في بيانات الاعتمادتأكد من أن SECRET هو مفتاح الوكيل المُسجَّل من ملف الإعداد

ما التالي؟​

الملخص​

ما أنجزته

أنشأت تطبيق SQL EKMفي منصة DuoKey
ثبّت مزوّد EKMعلى SQL Server
كوّنت SQL Serverلإدارة المفاتيح الخارجية
شفّرت قاعدة البياناتباستخدام TDE مع DuoKey