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

تكوين SQL Server

ينطبق على:
SQL Server 2016+يتطلب SSMSامتيازات Sysadmin

نظرة عامة​

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

ملف تكوين المزوّد​

قبل تشغيل أي SQL، أكمِل ملف config.toml الذي نشرته إلى C:\ProgramData\DKE\EKM\ أثناء التثبيت. يحمل هذا الملف إعدادات الاتصال التي يستخدمها المزوّد للوصول إلى منصة DuoKey.

C:\ProgramData\DKE\EKM\config.tomlTOML
# DuoKey endpoint
server_url = "https://<cockpit-host>"

# Tenant and application identifiers from your SQL EKM App
tenant_id = "<tenant-id>"
app_id    = "<app-id>"

# Agent key used by the provider to authenticate (single value)
agent_key = "<agent-key>"

# Optional: mutual TLS
# client_cert_path = "C:\\ProgramData\\DKE\\EKM\\client.pem"
# client_key_path  = "C:\\ProgramData\\DKE\\EKM\\client.key"
استمرارية keystore

إلى جانب config.toml، يحتفظ المزوّد بملف keystore.json في المجلد نفسه. يربط هذا الملف المفتاح غير المتماثل في SQL بمفتاح DuoKey بحيث تُعاد فتح قواعد البيانات المحمية بـ TDE تلقائيًا بعد إعادة تشغيل خدمة SQL Server. لا تحذفه بينما تكون قواعد البيانات مشفّرة.

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

  • تطبيق SQL EKM مُنشأ في منصة DuoKey
  • مكتبة مزوّد EKM وملف config.toml منشوران على المضيف
  • مفتاح الوكيل (agent key) من تطبيق SQL EKM
  • تثبيت SQL Server Management Studio (SSMS)
  • امتيازات Sysadmin على SQL Server

خطوات التكوين​

1

تمكين دعم مزوّد EKM

أولًا، فعّل إدارة المفاتيح القابلة للتوسيع في SQL Server. افتح SSMS ونفّذ:

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

-- Enable EKM provider
sp_configure 'EKM provider enabled', 1;
GO
RECONFIGURE;
GO
نصيحة

هذه الخطوة مطلوبة مرة واحدة فقط لكل مثيل SQL Server.

2

إنشاء المزوّد التشفيري

سجّل مكتبة مزوّد DuoKey EKM من المجلد الذي نشرتها فيه.

إنشاء المزوّدSQL
CREATE CRYPTOGRAPHIC PROVIDER DkeEkm
FROM FILE = 'C:\Program Files\DKE\EKM\dke_ekm_provider.dll';
GO
التوقيع مطلوب

يجب أن تكون المكتبة موقّعة رقميًا بسلسلة موثوقة على هذا الجهاز. إن لم يكن التوقيع موثوقًا، يفشل هذا الأمر ولن يحمّل SQL Server المزوّد. راجع دليل التثبيت للتحقّق من التوقيع.

3

إنشاء بيانات اعتماد المزوّد

أنشئ بيانات اعتماد تحمل مفتاح الوكيل الذي يستخدمه المزوّد للمصادقة مع DuoKey.

إنشاء بيانات الاعتمادSQL
CREATE CREDENTIAL DkeEkmCredential
WITH IDENTITY = 'DuoKey EKM',
SECRET = '<agent-key>'
FOR CRYPTOGRAPHIC PROVIDER DkeEkm;
GO
المعاملالوصف
IDENTITYتسمية نصية حرة لبيانات الاعتماد. لا يُتحقّق منها مقابل المنصة.
SECRETقيمة مفتاح الوكيل الوحيدة من تطبيق SQL EKM الخاص بك.
قيمة سرّية واحدة

إن SECRET قيمة واحدة — مفتاح الوكيل. لا يوجد معرّف عميل أو سر عميل أو كلمة مرور لدمجها، ولا تنسيق فاصل لاتباعه.

4

ربط بيانات الاعتماد بتسجيل دخول

اربط بيانات الاعتماد بتسجيل الدخول الذي سيدير قواعد البيانات المشفّرة.

ربط بيانات الاعتمادSQL
ALTER LOGIN [sa]
ADD CREDENTIAL DkeEkmCredential;
GO
نصيحة

استخدم تسجيل الدخول الذي يدير TDE، وهو عادةً حساب sysadmin.

فتح المفتاح الرئيسي لـ TDE​

يوجد المفتاح الرئيسي لـ TDE في DuoKey. تفتح مرجعًا إليه من SQL Server بدلًا من توليد مفتاح جديد محليًا.

1

فتح المفتاح غير المتماثل الموجود

فتح المفتاح الرئيسي من المزوّدSQL
USE master;
CREATE ASYMMETRIC KEY TDE_Master
FROM PROVIDER DkeEkm
WITH PROVIDER_KEY_NAME = 'TDE_MASTER',
CREATION_DISPOSITION = OPEN_EXISTING;
GO
المعاملالوصف
PROVIDER_KEY_NAMEاسم المفتاح في منصة DuoKey.
CREATION_DISPOSITIONيشير OPEN_EXISTING إلى المفتاح المُوفَّر مسبقًا في DuoKey.
افتح، لا تنشئ

استخدم CREATION_DISPOSITION = OPEN_EXISTING ولا تحدّد WITH ALGORITHM. يُوفَّر المفتاح الرئيسي في DuoKey؛ ولا يفتح SQL Server سوى مقبض إليه.

2

إنشاء تسجيل دخول من المفتاح غير المتماثل

أنشئ تسجيل دخول مدعومًا بالمفتاح الرئيسي واربط به بيانات اعتماد المزوّد. هذا هو تسجيل دخول المحرّك الذي يستخدمه TDE للوصول إلى المفتاح.

إنشاء تسجيل دخول المحرّك وربط بيانات الاعتمادSQL
USE master;
CREATE LOGIN TDE_Master_Login
FROM ASYMMETRIC KEY TDE_Master;
GO

ALTER LOGIN TDE_Master_Login
ADD CREDENTIAL DkeEkmCredential;
GO

التحقق​

تحقق من تكوينك باستخدام هذه الاستعلامات.

التحقق من المزوّد التشفيريSQL
SELECT
  name,
  guid,
  is_enabled
FROM sys.cryptographic_providers;
GO
التحقق من بيانات الاعتمادSQL
SELECT
  name,
  credential_identity
FROM sys.credentials
WHERE name = 'DkeEkmCredential';
GO
التحقق من ربط المفتاح الرئيسي بالمزوّدSQL
USE master;
SELECT
  ak.name AS KeyName,
  ak.algorithm_desc,
  cp.name AS ProviderName,
  cp.is_enabled
FROM sys.asymmetric_keys ak
INNER JOIN sys.cryptographic_providers cp
  ON ak.cryptographic_provider_guid = cp.guid
WHERE ak.name = 'TDE_Master';
GO
نصيحة

إذا أعاد الربط صفًا مع تمكين المزوّد، فقد فتح SQL Server المفتاح الرئيسي بنجاح عبر DuoKey وأنت جاهز لتمكين TDE على قاعدة بيانات.

أفضل الممارسات​

الأمان

  • قصر الوصول إلى بيانات اعتماد EKM على مسؤولي sysadmin
  • احمِ config.toml بأذونات مجلد مشدّدة
  • فعّل تدقيق SQL Server
  • خطط لتدوير منتظم لمفتاح الوكيل

الأداء

  • تأكد من استقرار الشبكة مع DuoKey
  • راقب زمن استجابة عمليات المفاتيح
  • أبقِ ساعة المضيف متزامنة

الصيانة

  • وثّق كل التكوين
  • اختبر التعافي من الكوارث بانتظام
  • حافظ على keystore.json بينما تكون قواعد البيانات مشفّرة

استكشاف الأخطاء وإصلاحها​

الخطوات التالية​