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

التعليق على موضوع إنشاء و اعطاء صلاحيات للمستخدمين

مغلق
بدأه طارق إبراهيم في 12 أكتوبر 2005 · 13 رد · 4,498 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

هنا مكان التعليقات و الاستفسارات و اى انتقاد او رأى موجه للموضوع الموجود على هذا الرابط

إنشاء مستخدم جديد و اعطاء الصلاحيات, الخطوة الاولى عند انشاء اى تطبيق

Technical Lead Developer

My LinkedIn Profile

اللهم قنى شر الجهل و الجهلاء

( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}

#2

السلام عليكم

-------------

أولا :

موضوع رائع بصراحة أضاف لية جزئية مهمة جدا , وهي التعامل مع المستخدمين من خلال الكود

وذلك بإعطاء الكونكشن إسم المستخدم والرقم السري الخاص به , فبهاذا سوف أستخدم صلاحيات الـ ـ SQL

وهي كما ذكرها الأستاذ طارق إبراهيم كالتالي :

اقتباس
تنبيه اخير

فى حال استخدمت ال Trusted Connection بداخل ال Code فانت تستخدم ال Windows Authentocation و تاكد ان ال MS SQL Server يعمل بها

فى حال استخدمت اسم مستخدم و كلمة مرور فانت تستخدم Mixed Mode Authentication و تأكد ان ال MS SQL Server يعمل فى هذا ال Mode و إلا ستظهر رسالة Access Denied او SQL Server Does Not Exist

في نقطة بقي :

انت قلت ان ممكن تظهر رسالة أو أخري , منين اتحكم في ظهور رسالة او أخري ؟؟

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

ثانيا :

اقتباس
و هنا تنتقل حسابات الدخول فى صيغة غير مشفرة Plain Text يمكن التقاطها بال Sniffers

ياريت تدينا نبزة عن Sniffers لأني معرفوش , وبمعرفته أكيد هعرف أزاي هفرق مابين الطريقة المشفرة والمفتوحة , اود تجربته

لكي يتضح لي الأمر أكثر ,

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

ثالثا :

في الصورة المرفقة إستفسار لم تتطرق إليه وهو الفرق بين الأربع إختيارات

مع تحياتي

طارق عفيفي

post-20462-1129077770_thumb.gif

#3

إجابة سؤالك الاول باصطياد رسالة الخطا الوارده من ال MS SQL Server فى حال كنت تستخدم الدوت نيت فيمكن الوراثة من ال Exception.SQLException و من ثم ترمى Exception خاص بك فيظهر رسالة خطا لطيفة

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

فى حال تستخدم ال VB فلن يمكنك استخدام ال Exception لانه لا يوجد Exception بال VB و لكن يمكنك استخدام Select Case لقراءة رسائل الخطأ الوارده من داخل اى Error Handling و من ثم التعامل معها

إجابة السؤال الثانى الخاص بال Sniffers فعليك بهذا الموضوع

ما هو ال Sniffers؟

إجابة السؤال الثالث الخاص بال Aduit فهى خاصة لل DBA عند حدوث اى عملية سواء تمت بنجاح Success او فشل Failure او لا يتم كتابة اى تقرير None او جمع اى عمليات ناجحة او فاشلة و وضعها بال Event Log

Technical Lead Developer

My LinkedIn Profile

اللهم قنى شر الجهل و الجهلاء

( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}

#4

أخي طارق موضوع اكثر من رائع جوزيت خيرا عليه

بس سؤالي لو اريد استخدام ال windows authentication لان الموقع والمستخدمون ضمن domain اين اضع التشيك على اسم المستخدم وكلمة المرور في الكود

يعني انا عملت اليوزرات والباسورد في sql server وانتهيت من اعطاء الصلاحيات بس في الكونيكشن ماذا اضع ؟؟ لان الusers الي عندي كثيرون؟

السؤال الثاني :

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

انا ابرمج جيدا فيasp.net لكن هذه المره الاولى الي اخوض فيها موضوع الامان وهو متشعب جدا

الف شكر لك

#5

يرجى اعطاء أمثلة لهذا الموضوع عن SQL Server Express 2005 كوني لم أجد له واجهة رسومية مثل الـ 2000 مثلا

عن عائشة رضي الله عنها أن النبي صلى الله عليه وسلم قال: إن الله يحب إذا عمل أحدكم عملا أن يتقنه

نعيب زماننا والعيب فينا ... وما لزماننا عيب سوانا

ونهجو ذا الزمان بغير ذنب ... ولو نطق الزمان لنا هجانا

محمد سامر أبو سلو

#6

اعتذر عن الاجابة متأخر لظروف الامتحانات و العمل

الاخ remaz22 للاسف انا لم اتعامل مع الدومين من قبل مع ال MS SQL Server و لكن هذا احدى المواضيع ربما تفيدك

صلاحيات المستخدم فى شبكة تعمل بالدومين

اما سؤال الثانى فالافضل هو استخدام ال Roles لكل مجموعة مع اعطائهم صلاحيات على ال Views او ال Stored Procedures المناسبة

الاخ samerselo للاسف لم انتقل لليوكون الان لظروف تتعلق بالهاردوير :D حاول ان تراجع ال Books Online المتعلقه بهذا الموضوع فى اليوكون

Technical Lead Developer

My LinkedIn Profile

اللهم قنى شر الجهل و الجهلاء

( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}

#7

السلام عليكم ورحمه الله وبركاته

شكرا أستاذ طارق على هذه المعلومات حيث اننى استرجعت ما درسته

جزاك الله عنا كل الخير

يا حى يا قيوم برحمتك أستغيث اصلح لى شأنى كله ولا تكلنى إلى نفسى طرفة عين

اللهم أعنا على ذكرك وشكرك وحسن عبادتك

اللهم انك عفو كريم حليم تحب العفو فاعفو عنا

اللهم إنى أسألك رضاك والجنة وأعوذ بك من سخطك والنار

اللهم إرحمنا فوق الأرض وإرحمنا تحت الأرض وإرحمنا وإعتق رقابنا يوم العرض

اللهم لا تدع لنا ذنبًا إلا غفرته ولا همًا إلا فرجته ولا مريضًا ولا دينًا إلا قضيته ولا عيبا إلا سترته ولا حاجًا هى لك رضا إلا قضيتها

اللهم انى أسألك موجبات رحمتك وعزائم مغفرتك والسلامة من كل إثم والغنيمة من كل بر والفوز بالجنة و النجاة من النار اللهم أمين يا رب العالمين

#8

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

يعد هذا الموضوع من افضل الموضيع التي استفدته منها كمبتدي في SQL SERVER2000

بارك الله في من قام باعداد هذا الموضوع وحفظه الله من كل مكروه

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

#9

كنت اليوم ادرس الامان في SQL Server و تذكرت انّ هناك مقالة جميلة للاخ طارق ابراهيم موجودة في المنتدى كنت قد قرأتها سابقا

بعد دراسة الامان احببت ان اعلق التعليقين التاليين:

اولا:

لم يتم التمييز بين Login و User و تم اعتبار كل منهما واحد فانت عندما تقوم بالدخول الى SQL Server تستخدم Login اسمه sa مثلاً

و هذا يختلف عن المستخدم dbo الذي يملك صلاحيات معينة في قاعدة بيانات واحدة او اكثر و يكون هذا المستخدم مرتبط مع Login لكي يتمكن من الدخول الى SQL Server

حيث انّ الاجرائية المخصصة لاضافة Login هي SP_AddLogin

اما الاجرائية المخصصة لاضافة User هي sp_adduser و تأخذ في احد بارمتراتها ال Login

ثانيا: بالنسبة ل

اقتباس
تنقسم ال Roles فى ال MS SQL Server لنوعين من ال Roles

في الحقيقة هي تنقسم الى ثلاثة اقسام و القسم الثالث هو ادوار التطبيقات application role و هي تتمتع بخصائص تتعلق في ضمان الامان في تطبيقات المستخدم

حيث انّ هذا النوع من الادوار يختلف عن النوعين السابقين في انه لا يمتلك مستخدمي قاعدة المعطيات اي اننا لا نقوم عند انشاء دور تطبيق بربطه مع مستخدمي قاعدة المعطيات و انما نقوم باسناد كلمة مرور له

فائدة هذه الادوار: هي تأمين السماحيات للاغراض من خلال التطبيقات فقط و بالتالي لا يمكن للمستخدم أن يحصل على السماحيات ما لم يقوم بتشغيل التطبيق المناسب و الذي ينقل من خلال عملية اتصاله مع قاعدة المعطيات كلمة المرور المناسبة للوصول الى سماحيات التشغيل المطلوبة

يمكن باستخدام الاجرائية المخزنة sp_setapprole ان نقوم باضافة دور تطبيق مع تحديد كلمة المرور و ذلك على الشكل التالي:

EXEC sp_setapprole 'SalesApprole', 'AsDeFXX'

او اضافته مع تشفير كلمة السر كما يلي

EXEC sp_setapprole 'Test', {Encrypt N 'pswd'}, 'odbc'

كما يمكننا من خلال Interprise Manager فعل ذلك وذلك عند اضافة Role لقاعدة بيانات معينة تظهر واجهة اضافة ال Role حيث يكون هناك نوعين

من ال Roles الموجودة

في البدية Standard Role و في الاسفل هناك Application Role حيث نقوم بتزويده بكلمة المرور

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

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

#10

مرحبا شباب

يعطيكم ألف عافية

samerselo كتب:
يرجى اعطاء أمثلة لهذا الموضوع عن SQL Server Express 2005 كوني لم أجد له واجهة رسومية مثل الـ 2000 مثلا

بالنسبة للتعامل مع Microsoft Sql Server 2005 Express Edition عبر الواجهات يمكن أن تقوم بالبحث عن هذا البرنامج في Microsoft.com و ستجده للتنزيل بحجم 220 ميغابايت تقريبا و هم مخصص فقط لنسخة Express Edition 2005

اسم التطبيق هو SQL Server Management Studio Express

و هو بحق رائع فهو مثل QA و مثل EM حيث يعطيك السماحية للقيام بنسخ احتياطي و بالتعديل على المستخدمين و العديد من الأمور .

waeldalol كتب:
كنت اليوم ادرس الامان في SQL Server و تذكرت انّ هناك مقالة جميلة للاخ طارق ابراهيم موجودة في المنتدى كنت قد قرأتها سابقا

بعد دراسة الامان احببت ان اعلق التعليقين التاليين:

اولا:

لم يتم التمييز بين Login و User و تم اعتبار كل منهما واحد فانت عندما تقوم بالدخول الى SQL Server تستخدم Login اسمه sa مثلاً

و هذا يختلف عن المستخدم dbo الذي يملك صلاحيات معينة في قاعدة بيانات واحدة او اكثر و يكون هذا المستخدم مرتبط مع Login لكي يتمكن من الدخول الى SQL Server

حيث انّ الاجرائية المخصصة لاضافة Login هي SP_AddLogin

اما الاجرائية المخصصة لاضافة User هي sp_adduser و تأخذ في احد بارمتراتها ال Login

بتوقع وائل موضوع اضافة أكثر من مستخدم إلى نفس حساب الدخول أي

Add Multi-User to the same Login Account

عملية غير مقبولة في Sql Server

خلينا نجرب هذا الكود

    Create Database  UserVsLogin Go



    Use UserVsLogin Go 



    Create Table  UserVsLoginTable

    (

         xId Int 

    )

    Go 



    Sp_AddLogin 'LogIn_1'  , '' , 'UserVsLogin' , 'English' 

    Go 



    --   Try  To Access The Database LogIn_1

    --   Result  Deny



    Sp_AddUser 'LogIn_1'  , 'TheUserNameMustBeUniqe'  

    Go 



    --   Try  to Access the databaee LogIn_1

    --   Reuslt  Accept 



    --   Try  to Access the Database TheUserNameMustBeUniqe

    --   Result  Deny



    --   Now  Try to Add anther user to the login Accout

    Sp_AddUser 'LogIn_1'  , 'TheUserNameMustBeUniqe_2'  

    Go 



    --   Result  : The login already has an account under a different user name

لا تنفذ الكود F5

جرب خطوة خطوة

النتيجة هي أنه لا يمكن إضافة مستخدمين لنفس حساب تسجيل الدخول و هذا الأمر شيء منطقي لأنه حساب تسجيل الدخول هو على مستوى المخدم أما المستخدم هو عنصر من عناصر قاعدة البيانات و إذا أنت فكرت فيها منطقيا فالنفرض أن هنالك ثلاث مستخدمين على يستطيعون الدخول عبر حساب الدخول يعني :

Ahmad -> Login by ( login_1 )

Anas -> Login by ( login_1 )

Desigen -> Login by ( login_1 )

الآن إذا جربت الدخول باستخدام ( أحمد أو أنس أو ديزاين ) ستعطى رسالة خطأ لأن تسجيل الدخول يتم فقط عبر فإذا كان الثلاثة مستخدين ستخدمون نفس حساب تسجيل الدخول فإنهم سوف يقومون بإستخدام Login_1 لتسجيل الدخول فكيف سيعرف الـ Sql Server من هو المستخدم الذي سجل الدخول ؟؟؟

#11

كلام سليم أخي Design ..

لأن كل Login له مستخدم واحد على الأكثر إلا في حالة واحدة ..

و هي أن يكون الـ LogIn عبارة عن مجموعة مثل الـ Administrators أو الـ PowerUsers ..

دروس و كتب مفيدة----------------------كتيب الإجرائيات المخزنةتعرف على اللغة 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

#12

أود معرفة مالخطورة أو مال المشكلة في اشتراك أكثر من مستخدم لل SQL Login? وانا استخدم هذه الطريقة بشكل دائم ولا أرى مشاكل عملية..

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

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

#13
Desigen كتب:
مرحبا شباب

يعطيكم ألف عافية

بالنسبة للتعامل مع Microsoft Sql Server 2005 Express Edition عبر الواجهات يمكن أن تقوم بالبحث عن هذا البرنامج في Microsoft.com و ستجده للتنزيل بحجم 220 ميغابايت تقريبا و هم مخصص فقط لنسخة Express Edition 2005

اسم التطبيق هو SQL Server Management Studio Express

و هو بحق رائع فهو مثل QA و مثل EM حيث يعطيك السماحية للقيام بنسخ احتياطي و بالتعديل على المستخدمين و العديد من الأمور .

بتوقع وائل موضوع اضافة أكثر من مستخدم إلى نفس حساب الدخول أي

Add Multi-User to the same Login Account

عملية غير مقبولة في Sql Server

خلينا نجرب هذا الكود

    Create Database  UserVsLogin Go



    Use UserVsLogin Go 



    Create Table  UserVsLoginTable

    (

         xId Int 

    )

    Go 



    Sp_AddLogin 'LogIn_1'  , '' , 'UserVsLogin' , 'English' 

    Go 



    --   Try  To Access The Database LogIn_1

    --   Result  Deny



    Sp_AddUser 'LogIn_1'  , 'TheUserNameMustBeUniqe'  

    Go 



    --   Try  to Access the databaee LogIn_1

    --   Reuslt  Accept 



    --   Try  to Access the Database TheUserNameMustBeUniqe

    --   Result  Deny



    --   Now  Try to Add anther user to the login Accout

    Sp_AddUser 'LogIn_1'  , 'TheUserNameMustBeUniqe_2'  

    Go 



    --   Result  : The login already has an account under a different user name

لا تنفذ الكود F5

جرب خطوة خطوة

النتيجة هي أنه لا يمكن إضافة مستخدمين لنفس حساب تسجيل الدخول و هذا الأمر شيء منطقي لأنه حساب تسجيل الدخول هو على مستوى المخدم أما المستخدم هو عنصر من عناصر قاعدة البيانات و إذا أنت فكرت فيها منطقيا فالنفرض أن هنالك ثلاث مستخدمين على يستطيعون الدخول عبر حساب الدخول يعني :

Ahmad -> Login by ( login_1 )

Anas -> Login by ( login_1 )

Desigen -> Login by ( login_1 )

الآن إذا جربت الدخول باستخدام ( أحمد أو أنس أو ديزاين ) ستعطى رسالة خطأ لأن تسجيل الدخول يتم فقط عبر فإذا كان الثلاثة مستخدين ستخدمون نفس حساب تسجيل الدخول فإنهم سوف يقومون بإستخدام Login_1 لتسجيل الدخول فكيف سيعرف الـ Sql Server من هو المستخدم الذي سجل الدخول ؟؟؟

#14

شكرا جدا اخى Nightcoder على هذه المعلومات انا كنت فعلا محتاجها ضرورى

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

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