شرح الاتصال بقاعدة بيانات SQL Server عن بُعد باستخدام C# خطوة بخطوة

شرح الاتصال بقاعدة بيانات SQL Server عن بُعد باستخدام C# خطوة بخطوة



الاتصال بقاعدة بيانات SQL Server عن بُعد باستخدام لغة C# من الأساسيات في برامج المحاسبة والتطبيقات المكتبية التي تعمل على أكثر من جهاز. في هذا المقال ستتعرف على جميع المتطلبات والإعدادات لتحقيق اتصال ناجح وآمن.

أولًا: المتطلبات على سيرفر SQL Server

1️⃣ تفعيل الاتصال البعيد (Remote Connections)

  • فتح SQL Server Management Studio
  • كليك يمين على اسم السيرفر
  • Properties → Connections
  • تفعيل Allow remote connections to this server

2️⃣ تفعيل بروتوكول TCP/IP

  • فتح SQL Server Configuration Manager
  • SQL Server Network Configuration
  • Protocols for Instance
  • تفعيل TCP/IP
  • إعادة تشغيل خدمة SQL Server

3️⃣ ضبط رقم البورت (Port)

يفضل استخدام بورت ثابت مثل 1433 لضمان استقرار الاتصال.

IPAll
TCP Port = 1433
TCP Dynamic Ports = (فارغ)

4️⃣ فتح البورت في Windows Firewall

  • Inbound Rule
  • Protocol: TCP
  • Port: 1433
  • Allow Connection

5️⃣ تفعيل SQL Server Authentication

  • Server Properties → Security
  • SQL Server and Windows Authentication mode
  • إعادة تشغيل السيرفر

6️⃣ إنشاء مستخدم SQL مخصص للتطبيق

CREATE LOGIN appuser WITH PASSWORD = 'StrongPassword123';
USE YourDatabase;
CREATE USER appuser FOR LOGIN appuser;
ALTER ROLE db_owner ADD MEMBER appuser;

ثانيًا: المتطلبات على جهاز العميل (برنامج C#)

7️⃣ الاتصال بالإنترنت أو الشبكة

لكي يتمكن برنامج C# من الاتصال بقاعدة بيانات SQL Server عن بُعد، يجب أن يكون جهاز العميل قادرًا على الوصول إلى السيرفر بإحدى الطرق التالية:

  • نفس الشبكة المحلية (LAN)
  • Public IP في حالة الاتصال عبر الإنترنت
  • VPN (وهو الخيار الأكثر أمانًا)

في حالة عدم توفر أي وسيلة من الوسائل السابقة، لن يتمكن البرنامج من الاتصال بالسيرفر حتى لو كانت إعدادات SQL Server صحيحة.

8️⃣ كتابة Connection String صحيح

Server=192.168.1.10,1433;
Database=YourDatabase;
User Id=appuser;
Password=StrongPassword123;
TrustServerCertificate=True;

9️⃣ كود الاتصال بقاعدة البيانات في C#

using System.Data.SqlClient;

using (SqlConnection con = new SqlConnection(connectionString))
{
    con.Open();
    // الاتصال تم بنجاح
}
تنبيه: في حالة ظهور خطأ Timeout أو فشل الاتصال، تأكد من إعدادات الشبكة والبورت والفايروول.

أخطاء شائعة أثناء الاتصال

  • Error 26: TCP/IP غير مفعل
  • Login failed: بيانات الدخول غير صحيحة
  • Timeout: مشكلة شبكة أو فايروول
نصيحة أمنية: لا تستخدم حساب sa، ويُفضَّل استخدام VPN عند الاتصال عبر الإنترنت للحفاظ على أمان البيانات.

باتباع الخطوات السابقة ستكون قادرًا على ربط برنامج C# بقاعدة بيانات SQL Server عن بُعد بشكل احترافي ومستقر.

comments

أحدث أقدم