![]() |
|
تجهيز SQL Server للعمل على الشبكة - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم قواعد البيانات (http://vb4arb.com/vb/forumdisplay.php?fid=40) +--- قسم : قسم مقالات قواعد البيانات تحت بيئة الـ.NET (http://vb4arb.com/vb/forumdisplay.php?fid=42) +--- الموضوع : تجهيز SQL Server للعمل على الشبكة (/showthread.php?tid=21117) |
تجهيز SQL Server للعمل على الشبكة - ابو ليلى - 18-07-17 السلام عليكم و رحمة الله و بركاته تعد مشاكل ربط 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 نلاحظ توفر المستخدم الذي انشأناه في القاعدة انتهينا من كل التجهيزات التي نريدها بقي علينا اختبار الاتصالات بين السيرفر و الاجهزة الفرعية. يتبع......... RE: تجهيز SQL Server للعمل على الشبكة - ابو ليلى - 18-07-17 وصلنا الى اختبار الاتصال وفق المستخدم المحدد كوننا قد جهزنا كل شيئ على السيرفر و انشأنا المستخدم الخاص بنا و كذلك فعلنا البورتات (TCP/IP , UDB) نريد اولاً اختبار الاتصال على الجهاز الرئيسي نفتح SQL SERVER Management Studio الان النافذة التي تظهر اولاً هي نافذة الولوج للسيرفر نريد ان نحدد من الخيارات (Options) بروتوكول الاتصال الافتراضي بحيث يكون TCP/IP و من ثم نتصل وفق اسم المستخدم الذي عملناه سابقاً , تابع وفق الصور تمام تم الاتصال بدون مشاكل , الان نريد التجريب وفق Ip Address و رقم المنفذ رقم الايبي كنا قد حصلنا عليه سابقاً. وذلك بدل من كتابة اسم السيرفر نكتب رقم الايبي ثم فاصلة ثم رقم المنفذ كما في الصورة الان و بعد التاكد من ان عملنا لم يذهب سدى , بقي التجريب على الاجهزة الفرعية بنفس هذه الطريقة يتوجب التجريب على الاجهزة الفرعية فقط لدي خطوة في البداية اريد تجريبها نذهب الى اي جهاز فرعي و من ثم نشغل محرر الدوس و نجرب عمل Ping للجهاز الرئيسي سنكتب التعليمة (Ping 192.168.1.102) و ننتظر استقبال الرد من الجهاز الرئيسي فاذا كانت الشبكة معدة بشكل صحيح سنستقبل رد من الجهاز الرئيسي مثل Reply From <192.168.1.102> او سنستقبل رداً Destination host unreachable او اي نوع من الاخطاء و لمعرفة معاني هذه الاخطاء و كيفية معالجتها يمكنك الاطلا على مايلي بعد التجريب من جهاز فرعي استقبلت الرد كما يلي على هذا الاساس تمت العملية و اصبح السيرفر متاح للعمل على الشبكة و يمكنك تجريب Management Studio من الاجهزة الفرعية و الاتصال بالسيرفر الرئيسي و فق اسمه او الايبي مع البورت الخاص به لتتأكد من صحة العمل او يمكنك استخدام Data Link مع تزويده بالوسائط اللازمة و تجرب العملية . ملاحظة : الجدير بالذكر ان الخدمة (SQL SERVER Browser) و المرتبطة بالبورت (UDP 1434) , تكون كافية لوحدها لتأمين اتصال بين السيرفر و الاجهزة الفرعية حتى في حال عدم تمكين TCP/IP و لن تحتاج لفحص الايبي و لا لاجراءات اضافية لكن تبقى هناك اشكاليات في هذه الخدمة اذ ان استخدام هذا البروتوكول (UDP) قد يحجب من الراوتر الخاص بالشبكة لانه لم يصمم للمرور من الراوترات الخاصة بالشبكة لضرورات حماية الشبكات , لكن يمكنك اعادا الراوتر ليتقبل مرور هذا النوع , او ان تقوم بارسال رقم المنفذ اثناء الاتصال. كما توجد به مشكلة اخرى فاذا كانت الاجهزة الفرعية تعمل بنظام 7 او windows server 2008 او انظمة احدث من ذلك فان بروتوكول UDP سيتم تجاهله من الاجهزة الفرعية لان الرد من السيرفر سيأتي بـ IP مختلف عما تم حجزه تعرف هذه المشكلة بــ loose source mapping لمعلومات اوفر عنها يمكنك مراجعة الرابط التالي https://technet.microsoft.com/en-us/library/ms190181.aspx#Anchor_2 سكربت خاص بعملية فتح البورتات و تجهيزها للعمل انسخ هذا النص الى ملف نصي لديك و احفظه على الجهاز , ثم غير لاحقة الملف الى النوع Bat ثم شغله لديك تشغيل مباشر (يفضل ان يكون الملف على سطح قرص و ليس على سطح المكتب) او يمكنك تشغيله من محرر الدوس (Cmd) هذا السكربت سيتكلف بالاجراءات اللازمة بدل العمل اليدوي PHP كود : netsh advfirewall firewall add rule name="Open Port 80" dir=in action=allow protocol=TCP localport=80افتح المحرر Cmd ثم اكتب التعليمة التالية PHP كود : ipconfig/flushdns بالتوفيق للجميع . (18-07-17, 10:43 PM)Amir_alzubidy كتب : ما شاء الله تبارك الرحمن و الشكر موصول لك اخي امير و بارك الله فيك على التثيبت RE: تجهيز SQL Server للعمل على الشبكة - Sajad - 19-07-17 السلام عليكم بارك الله فيك وفيت وكفيت جزاك الله خيرا طبعا منذ تواجدي بالمنتدى من مدة ليست بالقصيرة وانا ارى الكثير الكثير من الاسئلة بخصوص هذا الموضوع الذي طرحته فهذا الموضوع جدا مهم ويحتاج الى خطوات ذكرتها حضرتك وهي فعلا مهمة ومطلوبة لانجاح الاتصال بين الاجهزة المتعددة. شكرا جزيلا لك اخي الكريم فعلا مقالة مهمة وحسنا فعل اخي أمير لتثبيته الموضوع لأهميته. تحياتي لكم RE: تجهيز SQL Server للعمل على الشبكة - ابو ليلى - 19-07-17 (19-07-17, 12:04 AM)Sajad كتب : السلام عليكم وبك بارك الله اخي سجاد , و جزاك الله خيراً RE: تجهيز SQL Server للعمل على الشبكة - sendbad100 - 19-07-17 السلام عليكم ورحمة الله وبركاته الله يجعل عملك خالصا لوجهه الكريم ويجزيك الف خير لف الف شكر شرح ممتاز موضح بالصور عمل متقن الحظ في كثير من المشاركات بعد فترة تفقد الصور لانها مرفوعة في مواقع قد تحذفها بعد فترة من الزمن لذلك بعد اذن / الاخ العزيز ابو ليلى قمت بطباعة الشرح بي دي اف ووضعته في المرفقات. كي يبقى ما بقى منتدانا الغالي RE: تجهيز SQL Server للعمل على الشبكة - ابو ليلى - 19-07-17 (19-07-17, 08:14 AM)sendbad100 كتب : السلام عليكم ورحمة الله وبركاته جزاك الله خيراً اخي السندباد , معك حق الصور تفقد مع الوقت هذا صحيح مع انني سعيت لايجاد موقع يحتفظ بالصور لفترة طويلة , ونصحني الكثير من الاخوة بهذا الموقع لانه و عن تجربة مازالت لدى بعض الاخوة صور منذ اكثر من 6 سنوات لكنها تبقى مخاطرة . بارك الله فيك على عملك الطيب . RE: تجهيز SQL Server للعمل على الشبكة - ابو ابراهيم - 23-09-17
الله يجزاك الف خي
لا يظهر الابداع من اهله دائما انت من اوائل من يحب نشر العلم انت والاخوة الكرام بالمنتدى شكرا لك اخي ابو ليلي RE: تجهيز SQL Server للعمل على الشبكة - dramana - 21-10-19 عمل اكثر من رائع جزاك الله خيرا |