18-07-17, 09:11 PM
السلام عليكم و رحمة الله و بركاته
تعد مشاكل ربط SQL Server مع الاجهزة الفرعية على الشبكة الداخلية من المشاكل المعقدة
و المتشعبة و التي ترتبط بالكثير من الامور , و بعضها يكون خارج عن السيطرة.
المهم في هذا المقال سنتحدث عن طريقة تجهيز السيرفر لاستقبال الاتصالات من الاجهزة الفرعية وفقاً للطرق التي نعرفها
و يعرفها الاغلب منكم.
سنحتاج الى برنامج SQL Server مثبت على جهاز واحد فقط (الجهاز الرئيسي) , و نحتاج الى مجموعة اجهزة فرعية مربوطة مع الجهاز السابق عبر شبكة .
بعد توفر SQL Server و سلامة الشبكة نبدأ بالخطوات اللازمة لتجهيز SQL Server ليكون خادم لهذه الشبكة.
اولاً و قبل كل شيئ يجب ان تمتلك القدرة على الولوج الى السيرفر من الجهاز الرئيسي و ان تستطيع تصفح كائنات السيرفر بشكل سلسل دون اخطاء .
الخطو الاولى:تجهيز اعدادت السيرفر
نذهب الى قائمة ابدأ و من ثم الى كل البرامج و من ثم الى نسخة برنامج السيرفر لدينا مثلاً (SQL Serve 2008 R2) و من ثم الى المجلد (Configuration Tools) و من ثم الى (SQL Server configuration Manager) .
او بطريقة مختصرة نضغط على مفتاحي (Win+R) مفتاح الوندوز + R لتظهر نافذة تشغيل و من ثم نكتب بداخلها (sqlservermanager12.msc) حيث الرقم 12 يمثل نسخة السيرفر.
تفتح لدينا نافذة بتبويبين.
نحدد SQL Server Services تظهر في الجهة اليسرى قائمة الخدمات التي يؤمنها السيرفر (يختلف عددها حسب نسخة السيرفر)
نتأكد ان السيرفر يعمل و ذلك بوجدود ايقونة السهم الاخضر بجانبه و عادة يحمل الاسم (MSSQLSERVER) او (SQLSERVER)
ونتأكد ايضاً ان (SQL Server Browser) يعمل كذلك الامر.
اذا كان لديك نسخة Exprees يظهر لديك اسم الخدمة بهذا الشكل (SQLSERVER(SqlExpress
بالنسبة للاسم هذا هو الاسم الافتراضي في حال لم يقم المستخدم بتغير الاسم يدوياً اثناء تنصيب SQL Server
اذا لم تكن تعمل الخدمة بيمين الماوس ثم Start
الصورة توضح المطلوب
في نفس النافذة حدد (SQL Server Network Configuration) و من ثم حدد (Portocols for MSSQLSERVER)
تظهر لك 3 انواع من بروتوكولات الاتصال , عادة البروتوكول Shred Memory يكون مفعل لانه يستخدم للاتصال من نفس الجهاز
ولاستخدام بروتوكول TCP/IP يتوجب تفعيله بيمين الماوس ثم Enable , كما في الصورة.
اذا قمت بتغير اي اعداد في السيرفر يتوجب عليك ان تعيد تشغيل السيرفر كما يلي
توجه الى قائمة الخدمات كما في الصورة الاولى و حدد الخدمة و بيمين الماوس ثم Restart
الخطوة الثانية : الحصول على رقم IP الجهاز سنحتاجه لبعض التجارب
كما تعلمنا سابقاً افتح نافذة تشغي و اكتب بها (Cmd) لفتح محرر الدوس
اكتب بداخله (ipconfig) ثم اضغط Enter
ستحصل على مجموعة اسطر انتبه الى نوعين من ipv الاول (ipv4) و الثاني (ipv6)
يستطيع السيرفر الاتصال عبر هذين النوعين القديم ipv4 و الجديد ipv6 و ما يهمنا هنا هو القديم اقصر و اسهل في التعامل
سنفرض ان رقم الــ IP الذي حصلنا عليه هو (192.168.1.142) .
الخطوة الثالثة : الحصول على المنفذ الذي يستخدمه السيرفر .
عادة انت ستتصل من الاجهزة الفرعية الى الجهاز الرئيسي عبر البروتوكول TCP/IP و رقم المنفذ المخصص له
و لكن لاعتبارات كثيرة قد لا يكون المنفذ هو المنفذ المتعارف عليه الافتراضي 1433 , مثل وجود اكثر من نسخة Server او ان المنفذ محتل من قبل تطبيق اخر او اي شيئ لا ندري ماهو ....؟؟
لذلك توجب علينا معرفة رقم المنفذ وفق ما يلي
الان نتوجه الى (SQL SERVER Management Studio) و ندخل للسيرفر ثم نتوجه الى القائمة (Management) ثم الى (SQL Server Logs) ثم (Current Log) .
تفتح لنا نافذة نضغط على (Filter) في شريط الادوات , تظهر لنا نافذة جديدة نتوجه الى الحقل (Message Contains Text) و نكتب بداخلها (server is listening on) ثم نؤشر على (Apply Filter) و نضغط Ok .
تختفي النافذة و نحصل على معلومات عن البورت المستخدم من قبل السيرفر , شيئ من هذا القبيل
الخطوة الرابعة : فتح قواعد اتصال للبورتات المحددة في الجدار الناري و كذلك تامين قاعدة اتصال لبرنامج SQL Server
من المعروف ان الجدار الناري لا يرخص لاي برنامج او يسمح لاي منفذ بالتشغيل دون ان تكون قد سمحت له بذلك او قام النظام بتامين ذلك اتوماتيكياً.
نحتاج الى السماح لكلا المنفذين TCP/IP و UDP بالارقام 1433 , 1434 , كما يظهر لك من الصورة السابقة .
نفتح الجدار الناري كما اعتدنا , عن طريق تشغيل اكتب (wf.msc) اضغط Enter , تابع الصور
اولاً منفذ TCP/IP
ثانياً اضافة المنفذ UDP بالرقم 1434 بنفس الخطوات السابقة فقط نغير نوع المنفذ
صورة توضح
يمكنك تخصيص البورت لبرنمج محدد , بيمين الماوس على البورت المحدد تظهر لك نافذة , حدد منها مسار البرنامج المرتبط بالمنفذ او بامكانك عدم تعديله ليستخدمه اي برنامج .
ثالثاً السماح لــ SQL SERVER بالعمل ضمن الجدار الناري
نفس الخطوات السابقة و لكن هذه المرة سنختار برنامج و من ثم نحدد مساره على الجهاز
البرنامج عادة يكون في المسار التالي
C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Binn\Sqlservr.exe
مع اختلاف الرقم حسب نسخة السيرفر لديك
الخطوة الخامسة : تجهيز بعض الاعدادت على السيرفر
اما من جهة السيرفر نريد ان تأكد انه يسمح بالاتصال عن بعد كما نريد تكوين مستخدم خاص بنا يستطيع الولوج للسيرفر وفق كلمة مرور خاصة بنا
نتوجه الى Management Studio
نضغط على اسم السيرفر باليمين ثم خضائص
نتعرف على اسم السيرفر لدينا
في نفس النافذة نغير كما في الصور للسماح بالاتصال عن بعد و تمكين ولوج مستخدمين للسيرفر
نغلق النافذة السابقة .
نحتاج لعمل مستخدم خاص بنا , نتوجه الى التبويب Security - > Login باليمين New Login تابع كما بالصورة
من نفس النافذة نؤمن وصول المستخدم للقواعد المحددة
من نفس النافذة ايضاً
اخيراً = OK
نلاحظ توفر المستخدم الذي انشأناه في القاعدة
انتهينا من كل التجهيزات التي نريدها بقي علينا اختبار الاتصالات بين السيرفر و الاجهزة الفرعية.
يتبع.........
تعد مشاكل ربط SQL Server مع الاجهزة الفرعية على الشبكة الداخلية من المشاكل المعقدة
و المتشعبة و التي ترتبط بالكثير من الامور , و بعضها يكون خارج عن السيطرة.
المهم في هذا المقال سنتحدث عن طريقة تجهيز السيرفر لاستقبال الاتصالات من الاجهزة الفرعية وفقاً للطرق التي نعرفها
و يعرفها الاغلب منكم.
سنحتاج الى برنامج SQL Server مثبت على جهاز واحد فقط (الجهاز الرئيسي) , و نحتاج الى مجموعة اجهزة فرعية مربوطة مع الجهاز السابق عبر شبكة .
بعد توفر SQL Server و سلامة الشبكة نبدأ بالخطوات اللازمة لتجهيز SQL Server ليكون خادم لهذه الشبكة.
اولاً و قبل كل شيئ يجب ان تمتلك القدرة على الولوج الى السيرفر من الجهاز الرئيسي و ان تستطيع تصفح كائنات السيرفر بشكل سلسل دون اخطاء .
الخطو الاولى:تجهيز اعدادت السيرفر
نذهب الى قائمة ابدأ و من ثم الى كل البرامج و من ثم الى نسخة برنامج السيرفر لدينا مثلاً (SQL Serve 2008 R2) و من ثم الى المجلد (Configuration Tools) و من ثم الى (SQL Server configuration Manager) .
او بطريقة مختصرة نضغط على مفتاحي (Win+R) مفتاح الوندوز + R لتظهر نافذة تشغيل و من ثم نكتب بداخلها (sqlservermanager12.msc) حيث الرقم 12 يمثل نسخة السيرفر.
تفتح لدينا نافذة بتبويبين.
نحدد SQL Server Services تظهر في الجهة اليسرى قائمة الخدمات التي يؤمنها السيرفر (يختلف عددها حسب نسخة السيرفر)
نتأكد ان السيرفر يعمل و ذلك بوجدود ايقونة السهم الاخضر بجانبه و عادة يحمل الاسم (MSSQLSERVER) او (SQLSERVER)
ونتأكد ايضاً ان (SQL Server Browser) يعمل كذلك الامر.
اذا كان لديك نسخة Exprees يظهر لديك اسم الخدمة بهذا الشكل (SQLSERVER(SqlExpress
بالنسبة للاسم هذا هو الاسم الافتراضي في حال لم يقم المستخدم بتغير الاسم يدوياً اثناء تنصيب SQL Server
اذا لم تكن تعمل الخدمة بيمين الماوس ثم Start
الصورة توضح المطلوب
في نفس النافذة حدد (SQL Server Network Configuration) و من ثم حدد (Portocols for MSSQLSERVER)
تظهر لك 3 انواع من بروتوكولات الاتصال , عادة البروتوكول Shred Memory يكون مفعل لانه يستخدم للاتصال من نفس الجهاز
ولاستخدام بروتوكول TCP/IP يتوجب تفعيله بيمين الماوس ثم Enable , كما في الصورة.
اذا قمت بتغير اي اعداد في السيرفر يتوجب عليك ان تعيد تشغيل السيرفر كما يلي
توجه الى قائمة الخدمات كما في الصورة الاولى و حدد الخدمة و بيمين الماوس ثم Restart
الخطوة الثانية : الحصول على رقم IP الجهاز سنحتاجه لبعض التجارب
كما تعلمنا سابقاً افتح نافذة تشغي و اكتب بها (Cmd) لفتح محرر الدوس
اكتب بداخله (ipconfig) ثم اضغط Enter
ستحصل على مجموعة اسطر انتبه الى نوعين من ipv الاول (ipv4) و الثاني (ipv6)
يستطيع السيرفر الاتصال عبر هذين النوعين القديم ipv4 و الجديد ipv6 و ما يهمنا هنا هو القديم اقصر و اسهل في التعامل
سنفرض ان رقم الــ IP الذي حصلنا عليه هو (192.168.1.142) .
الخطوة الثالثة : الحصول على المنفذ الذي يستخدمه السيرفر .
عادة انت ستتصل من الاجهزة الفرعية الى الجهاز الرئيسي عبر البروتوكول TCP/IP و رقم المنفذ المخصص له
و لكن لاعتبارات كثيرة قد لا يكون المنفذ هو المنفذ المتعارف عليه الافتراضي 1433 , مثل وجود اكثر من نسخة Server او ان المنفذ محتل من قبل تطبيق اخر او اي شيئ لا ندري ماهو ....؟؟
لذلك توجب علينا معرفة رقم المنفذ وفق ما يلي
الان نتوجه الى (SQL SERVER Management Studio) و ندخل للسيرفر ثم نتوجه الى القائمة (Management) ثم الى (SQL Server Logs) ثم (Current Log) .
تفتح لنا نافذة نضغط على (Filter) في شريط الادوات , تظهر لنا نافذة جديدة نتوجه الى الحقل (Message Contains Text) و نكتب بداخلها (server is listening on) ثم نؤشر على (Apply Filter) و نضغط Ok .
تختفي النافذة و نحصل على معلومات عن البورت المستخدم من قبل السيرفر , شيئ من هذا القبيل
Server is listening on [ 'any' <ipv4> 1433]
هذا الكلام يعني ان المنفذ المستخدم هو الافتراضي 1433 , الصورة توضح المطلوبالخطوة الرابعة : فتح قواعد اتصال للبورتات المحددة في الجدار الناري و كذلك تامين قاعدة اتصال لبرنامج SQL Server
من المعروف ان الجدار الناري لا يرخص لاي برنامج او يسمح لاي منفذ بالتشغيل دون ان تكون قد سمحت له بذلك او قام النظام بتامين ذلك اتوماتيكياً.
نحتاج الى السماح لكلا المنفذين TCP/IP و UDP بالارقام 1433 , 1434 , كما يظهر لك من الصورة السابقة .
نفتح الجدار الناري كما اعتدنا , عن طريق تشغيل اكتب (wf.msc) اضغط Enter , تابع الصور
اولاً منفذ TCP/IP
ثانياً اضافة المنفذ UDP بالرقم 1434 بنفس الخطوات السابقة فقط نغير نوع المنفذ
صورة توضح
يمكنك تخصيص البورت لبرنمج محدد , بيمين الماوس على البورت المحدد تظهر لك نافذة , حدد منها مسار البرنامج المرتبط بالمنفذ او بامكانك عدم تعديله ليستخدمه اي برنامج .
ثالثاً السماح لــ SQL SERVER بالعمل ضمن الجدار الناري
نفس الخطوات السابقة و لكن هذه المرة سنختار برنامج و من ثم نحدد مساره على الجهاز
البرنامج عادة يكون في المسار التالي
C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Binn\Sqlservr.exe
مع اختلاف الرقم حسب نسخة السيرفر لديك
الخطوة الخامسة : تجهيز بعض الاعدادت على السيرفر
اما من جهة السيرفر نريد ان تأكد انه يسمح بالاتصال عن بعد كما نريد تكوين مستخدم خاص بنا يستطيع الولوج للسيرفر وفق كلمة مرور خاصة بنا
نتوجه الى Management Studio
نضغط على اسم السيرفر باليمين ثم خضائص
نتعرف على اسم السيرفر لدينا
في نفس النافذة نغير كما في الصور للسماح بالاتصال عن بعد و تمكين ولوج مستخدمين للسيرفر
نغلق النافذة السابقة .
نحتاج لعمل مستخدم خاص بنا , نتوجه الى التبويب Security - > Login باليمين New Login تابع كما بالصورة
من نفس النافذة نؤمن وصول المستخدم للقواعد المحددة
من نفس النافذة ايضاً
اخيراً = OK
نلاحظ توفر المستخدم الذي انشأناه في القاعدة
انتهينا من كل التجهيزات التي نريدها بقي علينا اختبار الاتصالات بين السيرفر و الاجهزة الفرعية.
يتبع.........
اللهم لك الحمد كما ينبغي لجلال وجهك و عظيم سلطانك
في حل و ترحال