المشاركات

عرض الرسائل ذات التصنيف SQL Server

SQL Server - Section2 - Roles في SQL Server

Roles في SQL Server الـ Roles في SQL Server تُستخدم لتجميع صلاحيات معينة وإعطائها لمجموعة من المستخدمين. بدلاً من منح كل مستخدم صلاحية على حدة، يمكنك إضافة المستخدم إلى Role وتمتعه بكل صلاحيات هذا الدور. 🔹 أنواع Roles في SQL Server النوع الوصف Fixed Server Roles تُحدد صلاحيات على مستوى السيرفر بالكامل، مثل إنشاء قواعد بيانات أو إدارة الدخول. Fixed Database Roles تُحدد صلاحيات على مستوى قاعدة البيانات، مثل القراءة أو التعديل أو النسخ الاحتياطي. User-Defined Roles Roles مخصصة يمكن إنشاؤها حسب الحاجة داخل قاعدة البيانات. 🧱 أمثلة على Fixed Database Roles db_owner – يمتلك صلاحيات كاملة على قاعدة البيانات. db_datareader – يمكنه قراءة جميع الجداول. db_datawriter – يمكنه تعديل البيانات. db_backupoperator – يمكنه عمل نسخ احتياطي. 🛠 إنشاء Role مخصص (User-Defined Role) CREATE ROLE support_team; ⬅ ينشئ دور باسم support_team في قاعدة البيانات الحالية. 👤 إضافة مستخدم إلى Role EXEC sp_addrolemember 'support_team...

SQL Server - Section2 - الصلاحيات: GRANT, REVOKE, DENY في SQL Server

الصلاحيات: GRANT, REVOKE, DENY في SQL Server في SQL Server، تُستخدم أوامر GRANT و REVOKE و DENY لإدارة صلاحيات الوصول للمستخدمين على مستوى الجداول، القواعد، والإجراءات. 🟢 GRANT – منح صلاحية يُستخدم الأمر GRANT لمنح المستخدم أو الدور حق تنفيذ أمر معين، مثل القراءة من جدول أو تنفيذ إجراء مخزن. GRANT SELECT ON Customers TO mahmoud; ⬅ يمنح المستخدم mahmoud صلاحية SELECT على جدول Customers . 🛑 DENY – منع صلاحية يُستخدم DENY لمنع مستخدم من تنفيذ إجراء معين، حتى لو كان له صلاحية عن طريق دور آخر. DENY SELECT ON Customers TO mahmoud; ⬅ يمنع المستخدم mahmoud من استخدام SELECT على جدول Customers . 🔄 REVOKE – سحب الصلاحية يُستخدم REVOKE لإزالة صلاحية تم منحها سابقًا باستخدام GRANT أو DENY . REVOKE SELECT ON Customers FROM mahmoud; ⬅ يُزيل أي صلاحية SELECT كانت ممنوحة أو ممنوعة على المستخدم mahmoud . 📋 صلاحيات شائعة في SQL Server الصلاحية الوصف SELECT قراءة البيانات من جدول أو View INSERT إدخال بيانات جديدة UPDATE ...

SQL Server - Section2 - Users vs Logins – إدارة المستخدمين في SQL Server

Users vs Logins – إدارة المستخدمين في SQL Server في SQL Server، يوجد فرق مهم بين Login و User ، وغالبًا ما يتم الخلط بينهما، رغم أن كل منهما يخدم غرضًا مختلفًا في إدارة الأمان. 🔐 ما هو Login؟ الـ Login يُستخدم لتحديد هوية المستخدم على مستوى السيرفر (SQL Server instance). يعني هو بوابة الدخول إلى السيرفر. يمكن أن يكون الـ Login مرتبطًا بحساب Windows أو يكون Login خاص بـ SQL Server. 👤 ما هو User؟ الـ User يُستخدم على مستوى قاعدة البيانات . بعد أن يتم تسجيل الدخول باستخدام Login، يجب أن يكون هناك User مرتبط به داخل قاعدة البيانات ليتمكن من تنفيذ الأوامر داخلها. 📊 جدول مقارنة بين Login و User العنصر Login User المستوى على مستوى السيرفر على مستوى قاعدة البيانات الغرض السماح بالدخول إلى SQL Server السماح بتنفيذ الأوامر داخل قاعدة بيانات معينة العلاقة يجب إنشاؤه أولاً يرتبط بـ Login 🧪 أمثلة عملية 🔹 إنشاء Login جديد: CREATE LOGIN mahmoud WITH PASSWORD = 'StrongPassword123!'; 🔹 إنشاء User مرتبط بالـ Login داخل ...

SQL Server - Section1 - استخدام Cursors في SQL Server

استخدام Cursors في SQL Server الـ Cursor في SQL Server هو كائن يُستخدم للتنقل بين الصفوف في نتيجة استعلام، ومعالجة كل صف بشكل فردي. 🟢 تُستخدم Cursors عندما تحتاج إلى تنفيذ عمليات متسلسلة (row-by-row) بدلًا من التعامل مع النتائج دفعة واحدة. ✅ خطوات استخدام Cursor تعريف Cursor باستخدام DECLARE فتح Cursor باستخدام OPEN جلب الصف الحالي باستخدام FETCH تكرار الخطوة السابقة حتى انتهاء الصفوف إغلاق Cursor باستخدام CLOSE حذف Cursor باستخدام DEALLOCATE 🧪 مثال عملي: استخدام Cursor لقراءة أسماء العملاء DECLARE @CustomerName VARCHAR(255); DECLARE customer_cursor CURSOR FOR SELECT CustomerName FROM Customers; OPEN customer_cursor; FETCH NEXT FROM customer_cursor INTO @CustomerName; WHILE @@FETCH_STATUS = 0 BEGIN PRINT @CustomerName; FETCH NEXT FROM customer_cursor INTO @CustomerName; END; CLOSE customer_cursor; DEALLOCATE customer_cursor; ⬅ في هذا المثال نستخدم Cursor لطباعة أسماء العملاء واحدًا تلو الآخر. 📌 أنواع Cursors ...

SQL Server - Section1 - التعامل مع Triggers في SQL Server

التعامل مع Triggers في SQL Server الـ Triggers هي نوع خاص من الإجراءات تُنفّذ تلقائيًا عند تنفيذ عمليات مثل INSERT ، UPDATE ، أو DELETE على جدول معين. 🟢 تُستخدم لتطبيق منطق معين أو فرض قيود عمل إضافية على الجداول. ✅ الصيغة العامة لإنشاء Trigger CREATE TRIGGER trigger_name ON table_name AFTER INSERT | UPDATE | DELETE AS BEGIN -- SQL statements END; 🔹 يمكنك استخدام AFTER أو INSTEAD OF حسب الحاجة. 🧪 مثال عملي: Trigger بعد عملية إدراج لننشئ Trigger يسجل أي عملية INSERT على جدول Orders داخل جدول AuditLog : CREATE TRIGGER trg_AfterInsert ON Orders AFTER INSERT AS BEGIN INSERT INTO AuditLog (ActionType, ActionDate) VALUES ('INSERT', GETDATE()); END; 📌 أنواع Triggers AFTER Trigger: ينفّذ بعد تنفيذ العملية (INSERT/UPDATE/DELETE) بنجاح. INSTEAD OF Trigger: ينفّذ بدلاً من تنفيذ العملية الأصلية. 🔧 إدارة Triggers تعطيل Trigger: DISABLE TRIGGER trg_AfterInsert ON Orders; تفعيل Trigger مرة أخرى: ENABLE...

SQL Server - Section 1 - إنشاء Stored Procedures وطرق إدارتها في

إنشاء Stored Procedures وطرق إدارتها في SQL Server الإجراءات المخزنة (Stored Procedures) هي عبارة عن كتل برمجية مكتوبة بلغة T-SQL يتم حفظها في قاعدة البيانات ويمكن استدعاؤها عند الحاجة. 🟢 تُستخدم لتجميع استعلامات متعددة، وتقليل التكرار، وتحسين الأداء والأمان. ✅ الصيغة الأساسية لإنشاء Stored Procedure CREATE PROCEDURE procedure_name AS BEGIN -- SQL statements END; ✅ استدعاء الإجراء: EXEC procedure_name; 🧪 مثال عملي بسيط إجراء يقوم بعرض كل العملاء من جدول Customers : CREATE PROCEDURE GetAllCustomers AS BEGIN SELECT * FROM Customers; END; ✅ لاستدعائه: EXEC GetAllCustomers; 📌 تمرير بارامترات إلى الإجراء CREATE PROCEDURE GetCustomersByCountry @Country nvarchar(50) AS BEGIN SELECT * FROM Customers WHERE Country = @Country; END; ✅ لتنفيذ الإجراء وتمرير قيمة: EXEC GetCustomersByCountry @Country = 'Germany'; 🔧 إدارة الإجراءات المخزنة ALTER PROCEDURE : لتعديل إجراء موجود. DROP PROCEDURE : لحذف الإجراء ...

SQL Server - Section1 - User-Defined Functions (UDFs)

User-Defined Functions (UDFs) في SQL Server في SQL Server، يمكنك إنشاء دوال خاصة بك تُعرف باسم User-Defined Functions (أو اختصارًا: UDF ). 🔹 تُستخدم الدوال لتغليف منطق معين يمكن إعادة استخدامه داخل الاستعلامات مثل SELECT أو WHERE أو حتى داخل JOIN . ✅ أنواع User-Defined Functions Scalar Function : تُرجع قيمة واحدة (مثل int أو varchar) Table-Valued Function : تُرجع جدول (يمكن التعامل معه مثل أي جدول عادي في الاستعلامات) 🧮 مثال: Scalar Function دالة تُرجع قيمة الضريبة بنسبة 10% من قيمة السعر: CREATE FUNCTION dbo.GetTax (@Price decimal(10,2)) RETURNS decimal(10,2) AS BEGIN RETURN @Price * 0.10 END; ✅ يمكنك استخدامها كالتالي: SELECT ProductName, Price, dbo.GetTax(Price) AS Tax FROM Products; 📋 مثال: Table-Valued Function دالة تُرجع المنتجات الأعلى من سعر معين: CREATE FUNCTION dbo.GetExpensiveProducts (@MinPrice decimal(10,2)) RETURNS TABLE AS RETURN ( SELECT ProductID, ProductName, Price FROM Products WHERE Price > ...

SQL Server - Section1 - ما هو T-SQL؟

ما هو T-SQL؟ T-SQL أو Transact-SQL هو امتداد لـ SQL طورته شركة Microsoft ويُستخدم في SQL Server. T-SQL يُضيف مجموعة من الميزات البرمجية التي لا توجد في SQL القياسية، مثل: تعريف المتغيرات (Variables) الشروط مثل IF...ELSE الحلقات WHILE الإجراءات المخزنة Stored Procedures الدوال المعرفة من قبل المستخدم User-defined Functions التعامل مع الأخطاء TRY...CATCH 🧠 الفرق بين SQL و T-SQL SQL T-SQL لغة استعلام قياسية معتمدة من ANSI امتداد خاص بـ SQL Server يحتوي على ميزات إضافية يدعم الأوامر الأساسية: SELECT , INSERT , UPDATE , DELETE يدعم برمجة كاملة مثل IF , BEGIN...END , LOOP مدعوم في معظم أنظمة قواعد البيانات حصري لـ SQL Server فقط ✅ مثال على كود T-SQL DECLARE @name NVARCHAR(50) SET @name = 'Mahmoud' IF @name = 'Mahmoud' BEGIN PRINT 'مرحبًا يا محمود!' END ELSE BEGIN PRINT 'اسم غير معروف' END ⬅ في هذا المثال نستخدم DECLARE و IF...ELSE لطباعة رسالة حسب القيمة. 🔍 أين يُستخدم T-SQL...

SQL Server - Section1 - النسخ الاحتياطي والاستعادة (Backup & Restore) في SQL Server

النسخ الاحتياطي والاستعادة (Backup & Restore) في SQL Server النسخ الاحتياطي ( Backup ) والاستعادة ( Restore ) هما من أهم العمليات في إدارة قواعد البيانات، وتُستخدم لحماية البيانات من الفقد أو التلف أو الكوارث. 🎯 ما هو النسخ الاحتياطي Backup؟ النسخ الاحتياطي يعني إنشاء نسخة من قاعدة البيانات تُخزن في ملف خارجي، يمكن استرجاعها لاحقًا. Full Backup : نسخة كاملة من قاعدة البيانات. Differential Backup : يحتوي على التغييرات منذ آخر Full Backup. Transaction Log Backup : يحفظ التغييرات في سجل العمليات (Logs) للاستعادة الدقيقة. ✅ الصيغة الأساسية لعمل Backup BACKUP DATABASE database_name TO DISK = 'path_to_file.bak'; 🧪 مثال عملي: BACKUP DATABASE MyDB TO DISK = 'D:\Backups\MyDB_Full.bak'; ⬅ هذا الأمر يقوم بحفظ نسخة كاملة من قاعدة البيانات MyDB إلى الملف .bak . ✅ الصيغة الأساسية لاستعادة قاعدة بيانات (Restore) RESTORE DATABASE database_name FROM DISK = 'path_to_file.bak'; 🧪 مثال عملي: RESTORE DATABASE MyDB FROM...

SQL Server - Section1 - ما هي Filegroups في SQL Server؟

ما هي Filegroups في SQL Server؟ في SQL Server ، تُستخدم الـ Filegroups لتنظيم وتوزيع البيانات في قاعدة البيانات عبر عدة ملفات. وهي عبارة عن حاويات منطقية لمجموعة من ملفات البيانات. 📦 لماذا نستخدم Filegroups؟ توزيع الجداول والفهارس على أقراص مختلفة لزيادة الأداء. إدارة أفضل للنسخ الاحتياطية والنسخ الجزئي. سهولة التحكم في الملفات عند الامتلاء أو التوسعة. ✅ الأنواع الأساسية للـ Filegroups النوع الوصف PRIMARY هو الـ filegroup الأساسي ويحتوي على ملف .mdf ويُنشأ تلقائيًا. User-defined ملف مجموعات تُنشأ يدويًا ويمكن تخزين جداول وفهارس فيها. FILESTREAM مخصص لتخزين البيانات غير المهيكلة مثل الصور والفيديو. 🧪 مثال عملي على إنشاء Filegroup CREATE DATABASE MyDB ON PRIMARY ( NAME = 'MyDB_data', FILENAME = 'D:\Data\MyDB_data.mdf' ), FILEGROUP SalesGroup ( NAME = 'SalesData1', FILENAME = 'D:\Data\SalesData1.ndf' ) LOG ON ( NAME = 'MyDB_log', FILENAME = 'D:\Logs\MyDB_log.ldf' ); ...

1.3 SQL Server - ملفات .mdf و .ldf

ما هي ملفات .mdf و .ldf في SQL Server؟ عند إنشاء قاعدة بيانات في SQL Server ، يتم إنشاء ملفين رئيسيين على القرص الصلب: 📦 أولًا: ملف .mdf (Primary Data File) الامتداد: .mdf = Main Database File الوصف: هو الملف الرئيسي الذي يحتوي على جميع بيانات الجداول، الفهارس، الإجراءات المخزنة، وأنواع البيانات. لا يمكن الاستغناء عنه: بدونه لا يمكن تحميل قاعدة البيانات. ⬅ عند إنشاء قاعدة بيانات جديدة باسم MyDB ، يتم إنشاء ملف MyDB.mdf . 📘 ثانيًا: ملف .ldf (Transaction Log File) الامتداد: .ldf = Log Database File الوصف: يُستخدم لتخزين كل العمليات التي تم تنفيذها على قاعدة البيانات (مثل INSERT, UPDATE, DELETE). وظيفته: يُستخدم في حالات الاستعادة (Recovery) بعد تعطل أو فشل النظام. ⬅ يتم إنشاء ملف MyDB_log.ldf تلقائيًا عند إنشاء قاعدة البيانات MyDB . 🧰 كيف أحدد مكان حفظ ملفات .mdf و .ldf؟ عند إنشاء قاعدة بيانات باستخدام SSMS، يمكنك تحديد مكان حفظ الملفات عبر تبويب Files في نافذة New Database . أو عبر كود T-SQL كما في المثال التالي: ...

1.2 SQL Server - إنشاء قاعدة بيانات باستخدام SSMS

إنشاء قاعدة بيانات باستخدام SSMS يمكنك إنشاء قاعدة بيانات جديدة في SQL Server بسهولة من خلال أداة SQL Server Management Studio (SSMS) باستخدام الواجهة الرسومية بدون الحاجة لكتابة أي أوامر. 🧭 خطوات إنشاء قاعدة بيانات باستخدام الواجهة الرسومية: افتح برنامج SSMS. اتصل بالخادم (Server) باستخدام بيانات المصادقة المناسبة. في الجزء الأيسر، انقر بزر الماوس الأيمن على Databases ، ثم اختر New Database . في نافذة "New Database"، أدخل اسم قاعدة البيانات الجديدة في حقل Database name . يمكنك ترك باقي الإعدادات كما هي أو تعديل مسارات ملفات البيانات (اختياري). اضغط OK لإنشاء القاعدة. ⬅ سيتم الآن إنشاء قاعدة البيانات وستظهر في قائمة Databases في الشجرة. ✍️ بديل: إنشاء قاعدة بيانات باستخدام كود T-SQL: إذا كنت تُفضل إنشاء قاعدة البيانات باستخدام كود SQL، يمكنك استخدام الأمر التالي في نافذة "New Query": CREATE DATABASE MyNewDatabase; ⬅ سيتم إنشاء قاعدة بيانات باسم MyNewDatabase . 📂 أين يتم تخزين قاعدة البيانات فعليًا؟ يتم إ...

1.1 SQL Server - SQL Server Management Studio (SSMS) – مقدمة

SQL Server Management Studio (SSMS) – مقدمة SQL Server Management Studio والمعروف اختصارًا بـ SSMS هو أداة رسومية (GUI) من مايكروسوفت تُستخدم لإدارة قواعد بيانات SQL Server . يُوفر SSMS بيئة متكاملة لكتابة أوامر SQL، تنفيذ الاستعلامات، إدارة الجداول، النسخ الاحتياطي والاستعادة، وإنشاء تقارير وتحليل الأداء. 🔹 مميزات SSMS: واجهة رسومية سهلة الاستخدام لإدارة قواعد البيانات. دعم كامل لتنفيذ أوامر SQL واستعراض النتائج. إمكانية تصفح الكائنات (Objects) مثل الجداول والإجراءات المخزنة والفهارس بسهولة. توفير أدوات للنسخ الاحتياطي (Backup) والاستعادة (Restore). تحليل الأداء وتحسين الاستعلامات عبر Query Analyzer. 🔧 تحميل وتثبيت SSMS: لتحميل SSMS، يمكنك زيارة الموقع الرسمي من مايكروسوفت: https://learn.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms بعد التحميل، قم بتثبيته كأي برنامج عادي في ويندوز. ✅ إنشاء اتصال بقاعدة البيانات: عند فتح SSMS لأول مرة، ستظهر نافذة Connect to Server : Server type : اختر "Data...