تقييم الموضوع :
  • 1 أصوات - بمعدل 5
  • 1
  • 2
  • 3
  • 4
  • 5
تجهيز SQL Server للعمل على الشبكة
#1
السلام عليكم و رحمة الله و بركاته

تعد مشاكل ربط 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

نلاحظ توفر المستخدم الذي انشأناه في القاعدة



انتهينا من كل التجهيزات التي نريدها بقي علينا اختبار الاتصالات بين السيرفر و الاجهزة الفرعية.

يتبع.........
اللهم لك الحمد كما ينبغي لجلال وجهك و عظيم سلطانك
في حل و ترحال
الرد }}}
#2
ما شاء الله تبارك الرحمن
يسلمو ايديك يا ابو ليلى
شرح وافي و منظم
تم تثبيت الموضوع لما له من اهميه.
شكرا جزيلا
الرد }}}
تم الشكر بواسطة: ابو ليلى , asemshahen5
#3
وصلنا الى اختبار الاتصال وفق المستخدم المحدد
كوننا قد جهزنا كل شيئ على السيرفر و انشأنا المستخدم الخاص بنا و كذلك فعلنا البورتات (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/libr...x#Anchor_2


سكربت خاص بعملية فتح البورتات و تجهيزها للعمل 

انسخ هذا النص الى ملف نصي لديك و احفظه على الجهاز , ثم غير لاحقة الملف الى النوع Bat
ثم شغله لديك تشغيل مباشر (يفضل ان يكون الملف على سطح قرص و ليس على سطح المكتب)
او يمكنك تشغيله من محرر الدوس (Cmd)
هذا السكربت سيتكلف بالاجراءات اللازمة بدل العمل اليدوي

PHP كود :
netsh advfirewall firewall add rule name="Open Port 80" dir=in action=allow protocol=TCP localport=80

@echo =========  SQL Server Ports  ===================
@echo 
Enabling SQLServer default instance port 1433
netsh advfirewall firewall add rule name
="SQL Server" dir=in action=allow protocol=TCP localport=1433
@echo Enabling Dedicated Admin Connection port 1434
netsh advfirewall firewall add rule name
="SQL Admin Connection" dir=in action=allow protocol=TCP localport=1434
@echo Enabling Conventional SQL Server Service Broker port 4022
netsh advfirewall firewall add rule name
="SQL Service Broker" dir=in action=allow protocol=TCP localport=4022
@echo Enabling Transact SQL/RPC port 135
netsh advfirewall firewall add rule name
="SQL Debugger/RPC" dir=in action=allow protocol=TCP localport=135
@echo =========  Analysis Services Ports  ==============
@echo 
Enabling SSAS Default Instance port 2383
netsh advfirewall firewall add rule name
="Analysis Services" dir=in action=allow protocol=TCP localport=2383
@echo Enabling SQL Server Browser Service port 2382
netsh advfirewall firewall add rule name
="SQL Browser" dir=in action=allow protocol=TCP localport=2382

@echo =========  Misc Applications  ==============
@echo 
Enabling HTTP port 80
netsh advfirewall firewall add rule name
="HTTP" dir=in action=allow protocol=TCP localport=80
@echo Enabling SSL port 443
netsh advfirewall firewall add rule name
="SSL" dir=in action=allow protocol=TCP localport=443
@echo Enabling port for SQL Server Browser Service's 'Browse' Button
netsh advfirewall firewall add rule name="SQL Browser" dir=in action=allow protocol=UDP localport=1434
@echo Allowing multicast broadcast response on UDP (Browser Service Enumerations OK)
netsh firewall set multicastbroadcastresponse ENABLE 
تعليمة خاصة تؤدي لمسح الاعدادات خوفاً من ان يكون هناك اعدادت مخزنة مسبقاً في كاش الجهاز تخص Dns

افتح المحرر Cmd ثم اكتب التعليمة التالية

PHP كود :
ipconfig/flushdns 

بالتوفيق للجميع .

(18-07-17, 10:43 PM)Amir_alzubidy كتب : ما شاء الله تبارك الرحمن
يسلمو ايديك يا ابو ليلى
شرح وافي و منظم
تم تثبيت الموضوع لما له من اهميه.
شكرا جزيلا

و الشكر موصول لك اخي امير و بارك الله فيك على التثيبت
اللهم لك الحمد كما ينبغي لجلال وجهك و عظيم سلطانك
في حل و ترحال
الرد }}}
#4
السلام عليكم

بارك الله فيك وفيت وكفيت جزاك الله خيرا

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

شكرا جزيلا لك اخي الكريم فعلا مقالة مهمة وحسنا فعل اخي أمير لتثبيته الموضوع لأهميته.

تحياتي لكم
الرد }}}
تم الشكر بواسطة: ابو ليلى , Amir_Alzubidy , sendbad100 , sendbad100 , asemshahen5
#5
(19-07-17, 12:04 AM)Sajad كتب : السلام عليكم

بارك الله فيك وفيت وكفيت جزاك الله خيرا

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

شكرا جزيلا لك اخي الكريم فعلا مقالة مهمة وحسنا فعل اخي أمير لتثبيته الموضوع لأهميته.

تحياتي لكم

وبك بارك الله اخي سجاد , و جزاك الله خيراً
اللهم لك الحمد كما ينبغي لجلال وجهك و عظيم سلطانك
في حل و ترحال
الرد }}}
تم الشكر بواسطة: Amir_Alzubidy , sendbad100 , Sajad , Sajad , asemshahen5
#6
السلام عليكم ورحمة الله وبركاته 

الله يجعل عملك خالصا لوجهه الكريم 
 ويجزيك الف خير 
لف الف شكر 
شرح ممتاز   موضح بالصور   عمل متقن 


الحظ في كثير  من المشاركات  بعد فترة تفقد الصور لانها مرفوعة في مواقع قد تحذفها بعد فترة من الزمن 
لذلك بعد اذن / الاخ العزيز ابو ليلى   قمت بطباعة الشرح بي دي اف ووضعته في المرفقات. كي يبقى ما بقى منتدانا الغالي


الملفات المرفقة
.pdf   تجهيز SQL Server للعمل على الشبكة- للاخ ابو ليلي - منتدى فجوال بيسك لكل العرب.pdf (الحجم : 1.63 م ب / التحميلات : 717)
الرد }}}
#7
(19-07-17, 08:14 AM)sendbad100 كتب : السلام عليكم ورحمة الله وبركاته 

الله يجعل عملك خالصا لوجهه الكريم 
 ويجزيك الف خير 
لف الف شكر 
شرح ممتاز   موضح بالصور   عمل متقن 


الحظ في كثير  من المشاركات  بعد فترة تفقد الصور لانها مرفوعة في مواقع قد تحذفها بعد فترة من الزمن 
لذلك بعد اذن / الاخ العزيز ابو ليلى   قمت بطباعة الشرح بي دي اف ووضعته في المرفقات. كي يبقى ما بقى منتدانا الغالي

جزاك الله خيراً اخي السندباد , معك حق الصور تفقد مع الوقت هذا صحيح
مع انني سعيت لايجاد موقع يحتفظ بالصور لفترة طويلة , ونصحني الكثير من الاخوة بهذا الموقع لانه و عن تجربة مازالت لدى بعض الاخوة صور منذ اكثر من 6 سنوات
لكنها تبقى مخاطرة .
بارك الله فيك على عملك الطيب .
اللهم لك الحمد كما ينبغي لجلال وجهك و عظيم سلطانك
في حل و ترحال
الرد }}}
تم الشكر بواسطة: Amir_Alzubidy , asemshahen5
#8
الله يجزاك الف خي
لا يظهر الابداع من اهله
دائما انت من اوائل من يحب نشر العلم
انت والاخوة الكرام بالمنتدى







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




سُبْحَانَكَ اللَّهُمَّ وَبِحَمْدِكَ، أَشُهَّدٌ أَنَّ لَا إلَهَ إلا أَنْتَ، أَسَتَغْفِرُكَ وَأَتُوبَ إِلَيْكَ
الرد }}}
#9
عمل اكثر من رائع
جزاك الله خيرا
الرد }}}
تم الشكر بواسطة:



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم