سؤال

لقد قمت بإنشاء مفتاح غير متماثل على أحد خوادم SQL الخاصة بي (2008). لقد قمت بتشفير حقل كلمة المرور وأتمكن من استرداد كلمة المرور هذه على ما يرام على خادم التطوير الخاص بي.

يتم تشغيل المشكلة حيث أحتاج إلى نقل هذه البيانات إلى خادم الإنتاج.

فيما يلي رمز المفتاح الذي تم إنشاؤه:

CREATE MASTER KEY ENCRYPTION BY PASSWORD='#########'
CREATE ASYMMETRIC KEY UserEncryptionKey
WITH ALGORITHM = RSA_2048

الآن ، عندما أقوم بتشغيل هذا على خادم الإنتاج ، فإنه ينشئ المفتاح على ما يرام. ومع ذلك ، عندما أقوم بتشغيل Sproc للحصول على كلمة المرور ، فإنها تُرجع NULL.

SQL:

    SELECT EncryptByAsymKey(AsymKey_ID('UserEncryptionKey'), Password ) 
    FROM Users WHERE UserName = '######'

أي أفكار حول ما أحتاج إلى القيام به للحصول على الحقل المشفر للعمل على خوادم SQL متعددة؟

واسمحوا لي أن أعرف إذا كنت بحاجة لتوضيح شيء ما.

شكرًا

هل كانت مفيدة؟

المحلول

لا تقم بنقل البيانات المشفرة من قاعدة بيانات إلى أخرى. من الناحية الفنية ممكنة ، صحيح ، لكن من المحتمل أن تعرض المفتاح في العملية ، لذا لا أخبرك بكيفية القيام بذلك.

عند تبادل البيانات بين المواقع ، يفصل الإجراء المعتاد الإدارة الرئيسية والنشر عن نقل البيانات. يتم فك تشفير البيانات قبل استخدام مخططات التشفير وتخصيصها لنقل البيانات ، مثل TLS و SSL ، والتي تقضي على مشكلة نشر ومشاركة مفاتيح التشفير الفعلية.

ملاحظة جانبية ASA ، عادة لا يقوم المرء بتشفير البيانات بمفاتيح غير متماثلة. فهي بطيئة للغاية لعمليات البيانات. ما يفعله الجميع هو تشفير البيانات بمفتاح متماثل ثم تشفير المفتاح المتماثل بمفتاح غير متماثل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top