الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مالفرق بين Login وال Users ?

مغلق
بدأه jooorj في 23 نوفمبر 2006 · 2 رد · 1,079 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

مالفرق بشئ من التفصيل بين User وال Login

للعمل أن ال login للوصول لقاعدة البيانات عموما

وال User تخت أي Login هو مسموح له

لكن السؤال نحتاج من الخبراء أن يعطونا شئ من التفصيل عن هذا الموضوع وكيفية عملهم برمجيا لو تكرمو ا:)

وبارك الله فيكم

موقوف من المشاركة لقلة الأدب

============================

#2

مالفرق بين Login وال Users ?

موقوف من المشاركة لقلة الأدب

============================

#3

اذا لم تتم الاجابة على هذا السؤال سوف يمتلئ المنتدى به, لذلك من الاسلم الاجابة بكل وضوح.

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

الفرق بين Login و User بشكل واضح جدا جدا:

ال Login يستخدم للاتصال مع SQL Server instance لاحظ انني و ضعت خط تحت للاتصال فقط

اي عند الاتصال مع instance يستخدم ال Login للتحقق من هوية الشخص الذي يحاول الاتصال, لماذا؟ لاننا لا نريد كل الناس التي على الشبكة او على الحاسب الحالي الاتصال مع ال Instance.

الان للتحقق من الهوية هناك طريقتين:

الاولى: باستخدام ما يدعى Windows Authentication

الثانية: باستخدام ال Mixed mode اي التحقق من الهوية المختلط و هنا يمكن استخدام Windows Authentication او Sql server Authentication

windows Authentication:

هنا تلاحظ انّ ال Login يكون على الشكل التالي: mymachine\userName او على الشكل domain\userName

حاول عمل SELECT SYSTEM_USER لترى ذلك بعد الاتصال باستخدام windows Authentication

عند استخدام windows Auth يتم التحقق من الهوية باستخدام windows اي باستخدام ال Login الخاص بالويندوز, لكي يستطيع مستخدم windows الدخول على sql server يجب ان يكون ضمن المجموعة Administrators.

Sql server Authentication:

هنا يتم التحقق من المستخدم باستخدام username,password يكونوا مخزنين ضمن قاعدة البيانات master و عند الاستعلام عن المستخدم باستخدام التعليمة SELECT SYSTEM_USER سوف يظهر لك ال Username.

الان انشاء ال Login يتم باستخدام الاجرائية المخزنة sp_addlogin مثلاً

EXEC sp_addlogin 'Wael', 'anypassword';

لاحظ هنا انّ هذا ال Login لا يستطيع الان الوصول او التعامل مع اي قاعدة بيانات اي فقط يستطيع الاتصال تمام, افهم هذه النقطة جيداً

بعد انشاء ال Login يجب علينا اعطاءه سماحيات الوصول لقاعدة البيانات لانه لافائدة من ال Login اذا لم يستطيع الوصول الى قواعد البيانات الموجودة

لاعطاء Login سماحية الوصول الى قاعدة بيانات محددة نستخدم الاجرائية المخزنة sp_grantdbaccess و هي فقط تسمح له بالاتصال بقاعدة البيانات فقط

و ذلك كما يلي

EXEC sp_grantdbaccess ‘Wael’

و يمكن ايضا استخدام الاجرائية المخزنة sp_adduser لنفس الغرض الذي تقدمه sp_grantdbaccess

و الافضل استخدام sp_grantdbaccess بدل من sp_adduser لان sp_adduser كانت تستخدم في النسخ قبل ال 2000 و لان sp_grantdbaccess تدل على المعنى بشكل افضل من sp_adduser لانه هنا لا يتم اضافة User جديد و انما فقط يتم ربط ال Login مع قاعدة بيانات معينة

لاحظ ايضا انه يمكن باستخدام كل من sp_adduser و sp_grantdbaccess اعطاء اسم جديد لل Login المرتبطة مع كل قاعدة بيانات

يعني اذا كان لدينا قاعدة بيانات اسمها db1 يمكن ربط ال Login الذي اسمه Wael معها باسم مستخدم مثلا W

و اذا كانا لدينا قاعدة بيانات اسمها db2 يمكن ربط ال Login الذي اسمه Wael معها باسم مستخدم مثلا W2 و هكذا

بعد ربط ال Login مع قاعدة بيانات معينة سوف تلاحظ انه تمت اضافته الى ال Users تبع قاعدة البيانات حسب الاسم الذي تم تحديده عند استخدام الاجرائية المخزنة sp_grantdbaccess او sp_adduser

بعد ذلك نقوم باستخدام تعليمتي REVOKE و GRANT لاعطاء او حجب سماحيات عن المستخدم

اتمنى ان يكون الفرق الان اصبح واضح, ننتهي من هذا السؤال :)

رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.

لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"

هذا الموضوع مغلق.

مواضيع مشابهة