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

Schema - Login - User - Application Role -db Role

بدأه صاحب همة في 8 يناير 2008 · 6 رد · 1,818 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله .

أحتجت لأن أتعامل مع انشاء مستخدمين لقاعدة البينات عن طريق السكربت ، نظريا : أعرف أن الخطوات هي كالتالي:

1- انشاء Roles واعطائها أنواع الصلاحيات المختلفة على الجداول .

2-انشاء المستخدمين واعطائهم واحدا او اكثر من Roles أعلاه.

3- يمكن بعد ذلك التعامل مع المستخدمين بشكل منفصل عن Roles.

لكني في الحقيقة تهت بين :Schema - Login - User - Application Role -Db Role ؟

هل من دليل ؟

من لمح فجر الأجر هان عليه ظلام التكليف

#2

طبعاً يوجد دليل أخي الكريم ..

كما تفضلت إذا كان همك الصلاحيات فالقصة محلولة :

Roles : تفيدك في إنشاء أدوار و إعطائها صلاحيات على مستوى الـ SQL Server ككل .. كأن تعطيه دور dbCreator

User : ستنشئه لكل قاعدة بيانات على حدى و هي ستكون مربوطة بحساب Role واحد دوماً كأن تنشئ لدور معين (MyRole) مستخدم باسم ما (MyUser) في قاعدة بيانات Master على سبيل المثال ..

Schemas : هي طريقة لترتيب الأغراض و تصنيفها ضمن قاعدة البيانات أكثر من أن تكون طريقة لها علاقة بالصلاحيات على الأغراض ..

وهي تشبه إلى حد كبير فضاءات الأسماء في الدوت نت لو كن عارفها حضرتك أو ما يسمى بـ NameSpaces ..

فبدلأ من أن تسمي الغرض مثلاً الأغراض عند إنشائها أول مرة بعد دخولك بحساب مالك قاعدة البيانات "dbo.MyTable" وهكذا ستنشئ أكثر من Schema و تسندها إلى الحساب مالك قاعدة البيانات بأسماء تدل على أقسام و تصنيفات الأغراض مثلاً كأن تنشئ الـ Schemas التالية :

Sales

History

Market

وتبدأ بإنشاء الأغراض بتسميات لجداولك كالتالي :

Sales.Bill

History.Bill

Market.Promotion

سيصبح لديك مجال أكبر لتسمية الأغراض و على الأخص الجداول ..

على فكرة إنت بتشوف على طول كلمة dbo قبل أسماء الأغراض التي يملكها حساب مالك قاعدة البيانات هو بالأساس Schema ينشئ بشكل افتراضي عند إنشاء قاعدة البيانات ..

وهذا الأمر يتم فقط لحساب مالك القاعدة دون غيره ... تمييز عنصري .

على كل حال ستجد في الـ Books On Line ما يسر قلبك وخاطرك من الأمثلة ...

بالتوفيق ..

دروس و كتب مفيدة----------------------كتيب الإجرائيات المخزنةتعرف على اللغة Transact SQL <<-->> كتيب عن تنصيب قواعد البيانات Sql Server باللغة العربية كتيب عن إنشاء قواعد البيانات في SQL Server باللغة العربية <<-->> درس مع الأمثلة عن المؤشرات و التعامل معها في الـ T-SQLالعبارات الشرطية و الحلقات في T-SQL <<-->> شرح لبعض الـ Extended Stored Procedure استخدام مكتبات الـ Dot Net الخاصة بك في الـ Sql Server 2005 <<-->> التعامل مع المصفوفات من خلال الـ T-SQLتعابير الجداول الشائعة في SQL Server 2005 <<-->>الاتصال بالأداة SQL Server Management Studioحلول سريعة و لمحات برمجية --------------------------------التصدير إلى إكسل : طريقة أولى : طريقة بسطر واحد من الكود <<-->> طريقة ثانية : طريقة تحتاج إنشاء إجرائية مخزنةً تجهيز بيانات جدول بالصيغة XML تمهيداً لحفظها كملف <<-->> تصدير البيانات إلى ملفات نصية برمجياً إغلاق جميع الإتصالات المفتوحة بقاعدة بيانات محددة .. تمهيداً لاسترجاعها أو حذفها <<-->> الاستعلام بناء على وقت مخزن بالصيغة العربية ضمن حقل نصي ..حذف السجلات المتكررة و إبقاء عدد محدد منها في جدول.. <<-->> أسرع طريقة لحذف سجلات جدول كيف احصل على اسم جهازي والباسوورد باستخدام T-SQL <<-->> حشر أنواع الصور المختلفة في حقل من نوع Image باستخدام إجرائية مخزنة .كيف تعرف أنواع الصور المخزنة في حقل من نوع Image .. <<-->> إجرائيات مخزنة ببارامترات ديناميكية مفيدة جداً للاستعلامات استخدام رقم الحقل بدلاً من الإسم في عبارات الإستعلام <<-->> من هو أضخم الجداول في قاعدة بياناتي ؟معرفة زمن تنفيذ الإجرائيات ( لتختار الطريقة الأسرع بين إجرائياتك المخزنة ) <<-->> التعامل مع الـ Rules برمجياً الحصول على آخر صف في الجدول <<-->> قراءة ملفات XML باستخدام T-SQL برمجياً (مثال مرفق)سحب بيانات ملف إكسل إلى الـ SQL Server <<-->> تشفير النسخة الاحتياطية بكلمة مرور <<-->> التخلص من البيانات المكررة <<-->> حل مشكلة التاريخ الهجريDifferential Backup بالتعريف---------- لا إله إلا الله .. محمد رسول الله

أخوكم في الله..  Imad Ozone

#3

شكر أ اخي عماد ..

لكن لموضوع ما يزال فيه بعض اللبس: نسيت أن أخبرك اني اتعامل مع SQL 2005 ، وعلى هذا فان فكرة Schema جديدة حسب ما فهمت منك ، أما ما التبس علي فيمكن أن أوضحه بمثال :

لدي قاعدة بيانات اسمها Test ، الخطوات التي أعرفها لانشاء مستخدم هي :

1-Creates a new SQL Server login.

use test;
CREATE LOGIN TestLogin WITH PASSWORD = '123' ;
GO

Adds a user to the current database.-2

USE Test;
CREATE USER TestUser
FOR LOGIN TestLogin

أسئلتي يمكن اجمالها فيما مايلي:

1- لماذا للوصول الى قاعدة البيانات يجب علي أن استخدم Login Name وليس User Name؟

2- لماذا لا يمكن استخدام نفس الLogin لأكثر من User ؟

3- أين سيكون موقع الSchema من الاعراب هنا : اين الموقع الصحيح للتعامل معها؟ وهل سأحتاج Schema ان اضيف لكل مستخدم ؟

4- هناك Application Role و Database Role اي منهما هو الذي سأتعامل معه ؟

مع خالص التقدير..

من لمح فجر الأجر هان عليه ظلام التكليف

#4
اقتباس
1- لماذا للوصول الى قاعدة البيانات يجب علي أن استخدم Login Name وليس User Name؟

يا سلام عليك هذا سؤال طرحت على نفسي منذ فترة طويلة عندما بدأت بالـ SQL Server .. أنت تحلل الأمور بشكل منطقي ..

الفكرة أخي الكريم أننا عندما نتصل بقاعدة بيانات فإننا بالضرورة ندخل على الـ SQL Server .. ولكن الدخول إلى السيرفر يحتاج إلى Login حتى نحدد صلاحيات مستخدم قاعدة البيانات على مستوى الـ SQL Server أليس كذلك ؟ و بما أنه لا يمكن إنشاء أكثر من مستخدم واحد لكل Login فهذا يعني أن الـ SQL Server سيدرك الـ User المستخدم عندما تتصل بقاعدة البيانات بواسطة الـ Login بسهولة !

اقتباس
2- لماذا لا يمكن استخدام نفس الLogin لأكثر من User ؟

لأن SQL server سيحدد المستخدم على قاعدة البيانات من خلال الـ Login الذي تتصل به لذلك لا يسمح لك بإنشاء أكثر من مستخدم واحد في قاعدة البيانات يشير إلى نفس الـ Login ..

اقتباس
3- أين سيكون موقع الSchema من الاعراب هنا : اين الموقع الصحيح للتعامل معها؟ وهل سأحتاج Schema ان اضيف لكل مستخدم ؟

فعلياً أنت لست بحاجة الـ Schema حتى تضبط الـ SQL Server Security مع أنها قد تكون ذات فائدة و تسهل بعض الأمور و لست مضطراً لأن تنشئ Schemas لكل مستخدم .. أما إذا أردت أن تعرف بالضبط لما تستخدم فببساطة أعرفها لك : هي عبارة عن مجموعة من أغراض قاعدة البيانات يتم إنشاؤها تحت اسم معين (فضاء أسماء كالدوت نت تماماً) و هذا الاسم يملكه مستخدم ما أو دور ما و يكون هو المالك الحقيقي للأغراض المدرجة تحت ذلك المخطط .. يعني ببساطة أقول لك استخدامها للتصنيف و إمكانية تسمية غرضين أو أكثر بنفس الاسم شريطة أن يكون كل واحد تابع لـ Schema مختلف عن الآخر ..

اقتباس
4- هناك Application Role و Database Role اي منهما هو الذي سأتعامل معه ؟

عليك بالـ Database Role أما الـ Application Role له استخدام خاص جداً و له طريقة استخدام خاصة لا تربك بها نفسك الآن ..

و يمكننا أن أشبهها لك (Database Role ) بـ مجموعات المستخدمين في ويندوز فأنت تستطيع أن تعطي مجموعة بعض الصلاحيات على مجلدات معينة و من ثم تضم المستخدمين إليها بدلاُ من تحديد الصلاحيات على ذلك المجلد لكل مستخدم على حدى و هنا في SQL Server الأمر مشابه تماماً أخي الكريم فأنت تستطيع أن تنشئ Role و تسند إليه بعض الصلاحيات ومن ثم تقوم بإضافة المستخدمين إليها ليأخذو تلك الصلاحيات نفسها و لتنطبق عليهم ..

أرجو أن أكون أوضحت لك الأمور نوعاً ما و الباقي عليك أخي .. ستجد أمثلة كثير في الـ Help و إن احتجت مساعدة سأحاول مساعدتك إن شاء الله .

تم تعديل هذه المشاركة بواسطة imadouzoun في 9 يناير 2008 في 20:39

دروس و كتب مفيدة----------------------كتيب الإجرائيات المخزنةتعرف على اللغة Transact SQL <<-->> كتيب عن تنصيب قواعد البيانات Sql Server باللغة العربية كتيب عن إنشاء قواعد البيانات في SQL Server باللغة العربية <<-->> درس مع الأمثلة عن المؤشرات و التعامل معها في الـ T-SQLالعبارات الشرطية و الحلقات في T-SQL <<-->> شرح لبعض الـ Extended Stored Procedure استخدام مكتبات الـ Dot Net الخاصة بك في الـ Sql Server 2005 <<-->> التعامل مع المصفوفات من خلال الـ T-SQLتعابير الجداول الشائعة في SQL Server 2005 <<-->>الاتصال بالأداة SQL Server Management Studioحلول سريعة و لمحات برمجية --------------------------------التصدير إلى إكسل : طريقة أولى : طريقة بسطر واحد من الكود <<-->> طريقة ثانية : طريقة تحتاج إنشاء إجرائية مخزنةً تجهيز بيانات جدول بالصيغة XML تمهيداً لحفظها كملف <<-->> تصدير البيانات إلى ملفات نصية برمجياً إغلاق جميع الإتصالات المفتوحة بقاعدة بيانات محددة .. تمهيداً لاسترجاعها أو حذفها <<-->> الاستعلام بناء على وقت مخزن بالصيغة العربية ضمن حقل نصي ..حذف السجلات المتكررة و إبقاء عدد محدد منها في جدول.. <<-->> أسرع طريقة لحذف سجلات جدول كيف احصل على اسم جهازي والباسوورد باستخدام T-SQL <<-->> حشر أنواع الصور المختلفة في حقل من نوع Image باستخدام إجرائية مخزنة .كيف تعرف أنواع الصور المخزنة في حقل من نوع Image .. <<-->> إجرائيات مخزنة ببارامترات ديناميكية مفيدة جداً للاستعلامات استخدام رقم الحقل بدلاً من الإسم في عبارات الإستعلام <<-->> من هو أضخم الجداول في قاعدة بياناتي ؟معرفة زمن تنفيذ الإجرائيات ( لتختار الطريقة الأسرع بين إجرائياتك المخزنة ) <<-->> التعامل مع الـ Rules برمجياً الحصول على آخر صف في الجدول <<-->> قراءة ملفات XML باستخدام T-SQL برمجياً (مثال مرفق)سحب بيانات ملف إكسل إلى الـ SQL Server <<-->> تشفير النسخة الاحتياطية بكلمة مرور <<-->> التخلص من البيانات المكررة <<-->> حل مشكلة التاريخ الهجريDifferential Backup بالتعريف---------- لا إله إلا الله .. محمد رسول الله

أخوكم في الله..  Imad Ozone

#5

جزاك الله خيرا أخي الكريم..

اتضحت الصورة الى حد ما. هل أجد لديك بعض الكتب التي تبحث في ادارة SQL2005 بمستوى مبتدأ ؟

مع خالص التقدير..

تم تعديل هذه المشاركة بواسطة صاحب همة في 13 يناير 2008 في 12:12

من لمح فجر الأجر هان عليه ظلام التكليف

#6

والله يا أخي الكريم .. أعتقد أن الـ Help أو الـ Books On Line توفر لك و للجميع أفضل مرجع لهكذا أمور ..

فإن استخدمت الـ Help وبحثت عن أي من العناصر التي سألت عنها ستجد شرحاً مبسطاً و رائعاً ..

أما الكتب الموجودة فلا أظن أنها للمبتدئين فهي تعتبر أنه لديك خلفية لا بأس بها في عالم Sql Server .. و مثالها الكتاب الرائع :

"How to Cheat at Securing SQL Server 2005"

بالتوفيق ..

دروس و كتب مفيدة----------------------كتيب الإجرائيات المخزنةتعرف على اللغة Transact SQL <<-->> كتيب عن تنصيب قواعد البيانات Sql Server باللغة العربية كتيب عن إنشاء قواعد البيانات في SQL Server باللغة العربية <<-->> درس مع الأمثلة عن المؤشرات و التعامل معها في الـ T-SQLالعبارات الشرطية و الحلقات في T-SQL <<-->> شرح لبعض الـ Extended Stored Procedure استخدام مكتبات الـ Dot Net الخاصة بك في الـ Sql Server 2005 <<-->> التعامل مع المصفوفات من خلال الـ T-SQLتعابير الجداول الشائعة في SQL Server 2005 <<-->>الاتصال بالأداة SQL Server Management Studioحلول سريعة و لمحات برمجية --------------------------------التصدير إلى إكسل : طريقة أولى : طريقة بسطر واحد من الكود <<-->> طريقة ثانية : طريقة تحتاج إنشاء إجرائية مخزنةً تجهيز بيانات جدول بالصيغة XML تمهيداً لحفظها كملف <<-->> تصدير البيانات إلى ملفات نصية برمجياً إغلاق جميع الإتصالات المفتوحة بقاعدة بيانات محددة .. تمهيداً لاسترجاعها أو حذفها <<-->> الاستعلام بناء على وقت مخزن بالصيغة العربية ضمن حقل نصي ..حذف السجلات المتكررة و إبقاء عدد محدد منها في جدول.. <<-->> أسرع طريقة لحذف سجلات جدول كيف احصل على اسم جهازي والباسوورد باستخدام T-SQL <<-->> حشر أنواع الصور المختلفة في حقل من نوع Image باستخدام إجرائية مخزنة .كيف تعرف أنواع الصور المخزنة في حقل من نوع Image .. <<-->> إجرائيات مخزنة ببارامترات ديناميكية مفيدة جداً للاستعلامات استخدام رقم الحقل بدلاً من الإسم في عبارات الإستعلام <<-->> من هو أضخم الجداول في قاعدة بياناتي ؟معرفة زمن تنفيذ الإجرائيات ( لتختار الطريقة الأسرع بين إجرائياتك المخزنة ) <<-->> التعامل مع الـ Rules برمجياً الحصول على آخر صف في الجدول <<-->> قراءة ملفات XML باستخدام T-SQL برمجياً (مثال مرفق)سحب بيانات ملف إكسل إلى الـ SQL Server <<-->> تشفير النسخة الاحتياطية بكلمة مرور <<-->> التخلص من البيانات المكررة <<-->> حل مشكلة التاريخ الهجريDifferential Backup بالتعريف---------- لا إله إلا الله .. محمد رسول الله

أخوكم في الله..  Imad Ozone

#7

الف شكر على هذه المعلومات القيمة فقد كنت بحاجة ماسة اليها

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