Policy Based mangment in SQL Server 2008 Part1

Policy-Based Management

Policy-Based Management:-
ويترجم العنوان بالمفهوم التالي نظام ادارة واعتماد السياسات في ال SQL Server

 

المقدمة:-

Policy-Based Management هو عبارة عن عناصر يقيد ال SQL Server الخاص بنا ويجبرة عل التصرف بما نريد او بما نحدد من امور ومتطلبات اساسية يحددها مدراء قواعد البيانات بشكل اتوماتيكي وبسيطرة واحدة بشكل اساسي ويمنع العبث بشكل تلقائي  ان افكار تطبيقة السيايات او ال Policy جائت من حاجة ومتطلبات انضمة التشغيل التي تعمل عمل شبكي لتقيد المستخدمين وصلاحياتهم اما الان فال SQL Server 2008 يمتلك هيكلة مستقلة للسماح بتقيد وتهيئة محتوياته ومستخدمية بصورة مركزية وبشكل تلقائية من قبل ال Administrator مما يساعد على استخدام اسلوب السيطرة المركزية والتلقائية

لنعلم ماسوف نخرج بة في نهاية الدرس

سوف نتعلم  تعريف Policy -Based Management ((PBM)) وما يحتوية من مكونات في الاصدار سكوال 2008 ثم سوف ندخل في صميم انشاء Policy من البداية حتى النهاية وبعد ان انشاء هذه السيايات سوف نتعلم كيفية تتم السيطرة والادارة مع العديد من الامثلة المتناولة

في النهاية سنخوض في التفاصيل المطلوب اتباعها دائماً او التي يفضل اتباعها

 على بركة الله لنبدأ

البداية مع ال Policy-Based Management (PBM)

Policy -Based management   كذالك يعرف سابقاً بأسم ال Declarative management Framework (DMF (لو نحاول ترجمة العنوان التالي سوف يكون بمعنى الاعلان عن منصة الادارة او بيئة الادارة

هذه العبارة قد تكون مهمة لكل من ادى امتحان ال  MCTS Implementation and Maintenance

لانه اخذها على شكل موضوعين منفصلين لكن عندما نعود للتدقيق نجد ان الهدف والغرض واحد من انشاء DMF باستخدام ال Policies

بالنهاية المصطلحين يسمحون بتنفيذ ادارات معينة من خلال استخدام السياسات Policies .

لنتعرف على فوائد استخدام ال PBM

1- Automatic Evaluation التقيم التلقائي يمكننا جدوله  للتاكد من اذعان للpolices والتأكد من حذف الاخطاء البشرية التي من الممكن ان تحدث بدون قصد (( سوف نتعلمها لاحقاً من هذا الدرس))

2- Polices Reuse  اذا كنت لاتستخدم خاصية السيرفر الرئيسي والذي يتحكم بالسيرفرات الاخرى فتتيح لك هذة الخاصية تصدير ملف ال Policies الى ال سيرفات الاخرى حيث يكون الملف عبارة عن XML والذي سوف يمثل ال Policy الذي يتحكم بال SQL Server الاخر

3- Automatic Enforcement  العديد من السياسات قد تمنع تقائياً من انشاء حدث معين وبالتالي الحفاظ على السيطرة المركزيه

4- Surface Area Configuration قد يكون هذا المصطلح ليس غريباً على مسامعكم انة الواجهات الخاصة بالتحكم بال service في الاصدار SQL 2005  وقد يتسائل مديري قواعد البيانات لماذا مايكروسوفت قد حذفت هذة الواجهات في الا صداء 2008  والجواب يكمن في ان PBM يعتمد في اعتمدها.حيث يمكن استخدام ال SP_Configure مباشرةً او استخدام ال PBM كما سنرى فيما بعد

5-  Centralized Policy Management  بصورة مختصرة لنتخيل هذة النقطة يمكن تنفيذ السياسات على السكوال واحد او على مجموعه SQl Server وسنتعرف لاحقاً على كيفية تكووين هذه الحالة. في الجزء الثاني من هذا الدرس بأذن الله تعالى

كما ترى العديد من الفوائد التي تقدمها ال PBM حيث يقدم العروض الكثيرة لمدراء ال SQL .

الشيء الذي يجب ان نتخيلة عدم صعوبة تعلم ال PBM حيث يجب ان نففهم النقاط التي تكون هيكلية ال PBM والنتيجة ستكون مرضية.

اما عن النقاط الواجب فهمها في الموضوع فهي كالتالي:-

1- PBM Components مكونات السياسات

2- Creating Condition خلق الشروط الواجبة على السياسات اتباعها

3- Creating Policies خلق السياسات

4-Evaluating policies تقيم الية عمل السيايات

ناتي الان الى شرح كل خاصية على حدة حتى تجتمع الافكار لدينا

1- PBM Components

تشمل ال PBM العديد من المكونات منها ال Facets , conditions , Policies ,Categories , Target

 لاحظ المخطط التالي كما في الصورة التالية:-

كما نرى ال Condition  جزة منة ال facets وال Condition جزة منة ال polices وفي النهاية توضع ال policies من الممكن ان

عمل له تصنيف اي Category

 ناتي الان الى شرح كل حالة على حدة

1- Facets

هو عبارة عناصر تكوين الخصائص اعتقد ان المقدمة واضحة جداً في الشرح عناصر تم تخزينها في ال SQL  تحتوي على قابلية تغير الخصائص او تكوين خصائص يريد منها المدير تقير ال Server  الخاص فية بها. ان ال SQL Server يحتوي على 74 facets  وان هذا العدد في زيادة في الاصدار 2008 R2  وهي غير قابلة للحذف او التعديل

ويمكن سحبها والتعامل معها من خلال تقيدها بشروط  او كما يطلق علية في مصطلحنا Condition ا كما سنطلق عليها في درسنا

ال Facets ممكن ان تكون  read / Write  وهي م الممكن ان نستخدمها في ال PBM  او من الممكن ان تكون read Only وهي تستخدم لاتمام عملية المراقبة الاداء.

ولمشاهدة الfacets  الموجودة على السيرفر خاصتك

بعد تشغيل ال SSMS  نذهب ال   object explorer ومن ثم  Policy Management management ومن ثم    ال facets  فنلاحظها كما في الصورة التالية

2conditions

لنعرفة بشكل بسيط هو عبارة عن الظروف التي سوف تعمل بها خصائص ال facets(( تحت اي ظرف )) لاتقلق ان وجدت التعريف غير كافي لكن في التطبيق العملي سوف يتضح اليك كل شيء

ان هذة الظروف او مايسمى بمنهجنا العلمي Condition  لها 4 خواص يجب ان نفهمها

1-      Name  :- اكيد وهو ما تريد ان تطلقة على ال condition  من اسم لتستخدمة فيما بعد ويفضل ان تبدا بالتسمة بأستخدام الرمز Cond(( على سبيل التفضيل لا اكثر ))

2-       Facet :-  خصائص ال facet  الموجودة والتي عرفناها فيما مضى

3-      Expression :- تقيم للخصائص الحالة التي يجب من خلالها عمل الشرووط او بمعنى اخر الجمل الشرطية التي توضع لعمل ال facet

4-      Description:- اعتقد ان العنوان واضح وهو وضع نص تفصيلي عن الحالة التي اعتمدناها على انشاء ال Condition

لاحظ كيفية انشاء condition جديد  شغل ال SSMS ومن ثم ال management  ومن ثم ال Policy Management من ثم كلك يمين New Condition كما في الصورة التالية
اكيد في النهاية سوف نقوم بتطبيق كل  الافكار في تمرين واحد

نأتي الان الى شرح هذة الواجهه وخصوصاً الخاصية Expression

1-      الخاصية AndOR  من الممكن ان يكون اكثر من Fact  في نفس ال Condition كما اننا نعرف ما الفرق بين الجملتين فح حالة ان المصطلح or  لنتخيل المثال التالي عندي اصدقاء واريد ان اطلب منهم طلباً معين لنتخيل الجملة التالية اذهب ياعمر او يا علي الى السوق يعني في حال ذهب احدها الى السوق فانني سوف ارضى او يكون طلبي مستجاب اما ان قلت اذهب ياعمر مع علي فيجب على الاثنان الذهاب في حال ذهب احدهما فانا لن ارضى وهنا الحالة تعني ال and نفس الموضوع يتكرر هنا اما ان ينفذ الخصائص التي تم تعينها جميعها او بعظها

2-      الخاصية Field وتعني ضبط الخصائص لل Facets  المختارة

3-      الخاصية Operator وفيها العديد من الاختيارات اي ان تنفيذ العمليات يتم في حالة

4-      اما الخاصية Value  فهي ما تحدد مايجب عملة مع هذا الشرط ال Condition وتأخذ اما قيم رقمية او Object  معينة كما نرى في الصورة اعلاة او تأخذ قيم ال True& False او تأخذ نص لكن في حال استخدمنا النص يجب وضع ال ((( ‘   النص  ‘)) وسنأخذ مثال على الحالة

3-  Policies

يقوم ال police  باختبار ال Condition  هو هو صحيح ام خطأ  وفقاً للظروف ال CONDITION  التي وضعناها مسبقاُ سنتعرف في البداية على اهمل الخصائص المتعلقة بال policies

1-      Name :- اسم يعطيى لل Policy  ويفضل ان يكون واضح وكمقترح نبدأ التسمية بال رمز POL ثم نتبعه بأسم ال Condition  (( على سبيل التفضيل لا اكثر ))

2-      Enabled :- تفعيل والغاء تفيل السياسات او المقصود ال Policies

3-      Check Condition :-  يقوم بربط ال condition مع ال policy  وذالك لتقم الاداء عمل السياسة

4-      Evaluation :- وتعني هذة الحالة او الخاصية السبب الذي سوف ينفذ تنفذ فيها السيايات المنشاة

وتاخذ اربع حالات سنشرحها بأيجاز

A – On Demand: – وتعني ان يتم التحقق وقت الطلب ولو نلاحظ ان خاصية ال Enable  تكون غير مفعلة لانها تكون خاضعه لارادة المستخدم او المدير الخاص بالسيرفر وتستخدم بشكل نادر لاغراض الاختبارات اي ان مدير قواعد البيانات يجب في البداية ان يستخدمها كما قلنا لاغراض الاختبارات

B – On Schedule: – تستخدم هذة الحالة في حال انشاء اوقات وجدولة معين يتم من خلالها توقيت عمل ال Policy  والاستخدام الشائع لها اثناء اختيار ال facets من نوع read-only  لأغراض المراقبة كما قلنا مسباقاً ((الاستخدام الشائع وليس الواجب))

C: – On Change: Log Only: – وتستخدم لتسجيل الاحداث التي لم تصغي الى policy  يتم اظهار خطأ في ال سجل الاخطاء

D: – On Change: Prevent: – كما في السابق لكن المنع هنا يحدث مباشرةً بعد عدم الاذعان الى السياسة (polices) المحددة

الشيء المهم الذي يجب ان نفكر فية هو ماهو ال   Evaluation المناسب الذي يجب ان نسخدمة لاعطائنا النتائج المناسبة .

طيب الان سوف افصل لك المجاميع التي تعمل مع ال Evaluation  المناسب لها  في حالة كان الخيارين On Change: Log Only و On Change: Prevent نستخدم معهما ال  facet  التالية طبعاً اكيد تعمل مع الاخرين

  •  Application Role
  •  Asymmetric Key
  •  Database Role
  •  Endpoint
  •  Login Options
  •  Multipart Name
  •  Resource Pool
  •  Schema
  •  Stored Procedure
  •  Table Options
  •  User Defined Function
  •  User Options
  •  View Options
  •  Workload Group

اما ال facet  التي تعمل مع ال  On Change: Log Only  فقط اي بدون ال Change Prevent   onفهي كالتالي:-

  • Database Option
  • Server Configuration
  • Surface Area

اما ماتبقى من ال facets  فهي مخصصة فقط لل  On Demand و On Schedule

1-      نعود الان الى الخاصية الخامسة من خصائص ال Policy وهي ال Server Restriction

يجب ان نعلم انة من الممكن ان تنفذ Condition  قادم من Server اخر

Description Page Policies كما في الواجهه التالية

اولاً:- category وهي عبارة عن Groping  لل policy  وسوف نشرحها بالتفصيل لاحقاً

ثانياً :- Description وضع وصف لل Policy  وما عملها وهي مفيدة جداً

ثالثاً:- الخيار text To Display ومعناه وضع نص رسالة خطا تضهر في حال كان المستخدم لايذعن للسياسة الموضوعة او ال Policy

رابعاً :- الخيار Address  وضع عنوان لرابط تشعبي يضهر في حال ضهرت رسالة الخطأ او ان المستخدم لايذعن لشرط معين

اخيرأ عند الضغط على زر ال OK  سوف ينشئ لدينا اول Policy

1-      كما تكلمنا سابقاً عمل Grouping  لل Policy  الخيار الافتراضي هو default  لكن لاينصح به  تعرف ال category على انها وحدات تنضيم لل Policy   اما اذا كنت تريد استخدام ال category  فلديك الخيارات التالية

اولاً:-  استيراد مجموعه من التصنيفات من خلال استيراد ال Microsoft sample Polices  كما سنفعل في التمرين التالي
ثانياً :- خلق التصنيف الذي تريده  انت

لنلاحظ التمرين التالي على استيراد Category  من خلال استيراد ال Policy

1-      نفنح ال SSMS

2-      نقوم بال نزول على management

3-      ثم فنح عقدة ال Policies management

4-      ومن ثم Right Click    على ال  Policies ثم اختيار ال Import Policy

5-      ومن ثم الذهاب الى ال path التالي C:\Program Files\Microsoft SQL Server\100\Tools\Policies\     DatabaseEngine\1033 folder
ملاحظة هنالك Facet خاصة بال Analysis Services , Reporting Services لكل منها استخداماتها

حدد كل ال موجود ولاحظ الشكل التالي

الخيارت الموجودة في خانة option  معروفة اختر منها التالي Preserve Policy State on import وتعني المحافظة على حالة ال Plicy  ولاتقلق سوف تكون كل ال Policy في حالة ال Don’t Enable  اما الخياران الباقيان فهما واضحان

1-      بعد الضغط على مفتاح ال OK  سوف تلاحظ ظهور قائمة من ال Policy  ملاحظة في بيئة انتاجية لاتقوم بأستيراد كل الPolicy  الموجودة حتى لايحدث لديك اي تشوش او فوضى في العمل تذكر انك مدير قواعد بيانات

2-       الان Right-click ثم اختيار Policy Management node وثم اختيار  Manage Categories

فنلاحظ النتيجة التالية

كما ويمكنك التالي تابع الصورة التالية

مافائدة هذة الصورة اي يمكننا انشاء ال Policy  الخاص بنا وتصديرة واستيرادة علىServer  اخر تخيل هذة الفائدة حيث لايجب ان تعيد العمل في كل مرة

استفدنا من هذا التمرين التالي استيراد Policy  وبالتالي استيراد Category  ومن ثم عرفنا اننا من الممكن ان نقوم بتصدير Policy  وما له من فوائد

اما عن الطريقة الثانية في انشاء new Category  تابع الصورة التالية من خلال الضغط على زر New

الصورة التالية تبين كيفية انشاء category جديد مع استعراض ال Category  المستورد اثناء استيراد ال Policy

الان نأتي الى تطبيق كل ما تكلما عنة وتنفيذة في مشروع صغير لنختم به درسنا على امل المعادوة في الجزء الثاني من الموضوع

تعلمنا معاً النقاط التالية ان ال facet  تكون في الاصل موجودة ومحملة على SQL Server  الخاص فينا لذالك كاول خطوة نقوم فيها انشاء Condition

سأخذ امثلة بسيطة لتطبيقها :

ال Facet  الاولى تفيد في تهيئة ومراقبة اداء المستخدمين في حال كانلهم نفس ال Default database

ال facet  الثانية ستقوم بأجراء سياسية التحقق من  ان قاعدة البيانات خاصية ال recovery لها تكون Full و ان ال owner نحددة نحن

ناتي الى طريقة انشاء Condition جديد كما تعلمنا مسبقاً ولنسميها مثلاً كالتالي ConUserDefaultDatabase     تابع الخطوات التي في الصورة

بنفس الطريقة نقوم بانشاء Condition جديدة ولتكن اسمها  CondDatabaseRecovery وخاصية ال factلها تكون Database option

اما Expressionفتكون كالتالي

ثم OK

الان سوف نقوم بانشاء ال Policy  الخاص بكل Condition

كما تعلمنا مسبقاً سوف نقوم بانشاء Policy

للCondition كما في الصورة التالية

ثم نضغط OK لانشاء ال Policy ب ثم نقوم بعملية ال  Evaloution  (( تشغيل ال Policy ))شكل يدوي كما في الشكل التالي

طبعاً هذة الحالة مفيدة او طريقة التشغيل في حال كان ال Evolution mode On demand اي عند الطلب اختبرها بنفسك

سوف اقوم بأختبار ال Policy  عن طريق انشاء  مستخدم جديد بأستخدام الكود التالي

use master

GO

create Login UserIraqDB  WithPASSWORD=’123456@r’

,DEFAULT_DATABASE= IraqDotNetDB

ثم الضغط على زر ال F5 للتنفيذ  فنلاحظ الرسالة او الخطا التالي

لنفرض الفرضية التالية لو كان لدينا مستخدم انشئ  مسبقاً غير مطابق لل Policy التي عملناها الان عند انشاء ال Policy فأن ال SQL Server لن يعترض الا في حال عملنا بشكل يدوي على تشغيل ال Policy  كما في الصورة اعلاة

الان لنلاحظ كيفية تتبع الخطا في حال كانت ال Evolution mode On Change only:-

بعد ان ننشأ الساسية الثانية نقوم

 

اضغط OK لانشاء ال السياسة التالية ولنشاهد النتائج بعد تغير بعض ال Option لقاعدة البيانات خاصتك حيث قم بتغير ال recovery Modil او ال owner او خاصية ال Aotu Close طبعاً ان ال التغيرات سوف تحدث لكن سوف يتم ابلاغ مدير  ال SQL Server  بالتغيرات التي جرت وهي تفيد في حال مراقبتة التغيرت التي تطرأ على قاعدة البيانات خاصتك تابع الصور التالية

ومن تأممل بالتقرير الذي يظهر كما في الشكل التالي او كما ضهر لديك

ناتي الان الى مثال اخير
سوف ان شاء Condtion هو التالي مثالة لا اريد Stord Procedure  يبدا بالاسم SP

نخلق Condtion بأسم CondCheckProSdure ثم نضع الFacet له StordProcdure

اما عن الExprition فيكون كالتالي

لننشأ الان ال POlicy  كما في الشكل التالي

بعد الضغط على زر ال OK  لننفذ الكود التالي

Use IraqDotNetDB
Go
Create Proc SP_omar
as
Print ‘NO Way…… man’

عند تنفيذ الكود اعلاة ستلاحظ ضهور خطأ وهو عدم القبول بال ستورد بروسيجر لاحتوائة على الاسم SP_

اردت في هذا المثال ان اوجه التفكير في خاصية  Agnest Target

اي على ماذا تريد ان ان يعمل ال Conditionلديك  ان ال SQL يمتلك  من الذكاء ليعلم ان ال  خاصية ال @name لل Storprocdure يعمل على Database  لكن في الكالات والشروط التابعه  او بالاحرى التي حددتها انت لها كما في الشكل التالية

اذن الان لنقوم بتحديد عمل هذا ال Policy  عن طريق انشاء Condition جديد لل facet المسمى Database

لكي يعمل هذا ال Policy  على نوع معين

تابع معي انشاء Condtion  جديد بأسم Conddatabasename والFacet لها Database اما الاكسبرشن فهو كالتالي

فتصبح واجهة ال Policy  او ال Agnest target  كما في الشكل التالي

الان لو حاولنا ان ننشأ StordProcdure  على اي قاعدة بيانات سوف يقبل بالتأكيد اما ل حاول ان تنشا StordProcdure  على قاعدة بيانات والتي اسمها AdventureWorks2008

لن يقبل واترك لك الكود وانت جرب بكل التوفيق

Use AdventureWorks2008
Go
Create Proc SP_test
as
Print ‘ألفريق العربي للبرمجة’

تم بعون الله الانتهاء من الجزء الاول وان شاء الله في الجزء الثاني سنتعلم كيفية عمل ال Centralized
Policy Management

الرجاء دعواتكم اخواننا الكرام في حال استفتدم من هذا المثال

المصادر

1-  كتاب  ال SQL Server® 2008 Administration Real World Skills for MCITP Certification and Beyond

2-  كتاب Pro SQL Server 2008 Policy-Based Management

الرجاء ذكر المصدر في حال نقل المقال

Advertisements

3 thoughts on “Policy Based mangment in SQL Server 2008 Part1”

شاركنا بارد

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

WordPress.com Logo

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   / تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   / تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   / تغيير )

Google+ photo

أنت تعلق بإستخدام حساب Google+. تسجيل خروج   / تغيير )

Connecting to %s