كيف تحمي كود SQL في SQL Server
-
06-07-2019 - |
سؤال
هل من الممكن لحماية SQL 2008 قانون الإجراءات المخزنة من anyone`s العيون؟ ربما بعض التشفير، أو تجميع مثل دلل؟
المحلول
ونعم يمكنك حفظه TI قاعدة البيانات بشكل مشفر، ولكن إذا قمت بذلك، تأكد من حصولك على رمز المصدر الأصلي بأمان تخزينها في مكان ما ...
CREATE PROCEDURE dbo.foo
WITH ENCRYPTION
AS
BEGIN
SELECT 'foo'
END
ولسوء الحظ، هناك نوعان من طرق على الأقل لهزيمة هذه الآلية. واحد هو لتشغيل SQL التعريف أثناء تنفيذ الإجراء المخزن. هذا في كثير من الأحيان يمكن أن تكشف عن نص الإجراء في حد ذاته، وهذا يتوقف على ما يقوم به إجراء مخزن (على سبيل المثال، إذا كان لديه GO دفعات، ودينامية SQL الخ). إذا كانت تفوت الأولي تثبيت، يمكن للمستخدم حذف الإجراءات المخزنة أو إسقاط قاعدة البيانات، تبدأ أثر التعريف، ويطلب منك إعادة إنشاء هذه (وفي هذه الحالة سيتم التقاط البيانات إجراءات إنشاء). يمكنك منع التعريف من كشف النص إلى المتلصصون عن طريق دمج sp_password في التعليمات البرمجية، كما تعليق:
CREATE PROCEDURE dbo.foo
WITH ENCRYPTION
AS
BEGIN
SELECT 'foo'
-- comment: sp_password
END