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

كيف حل هدا الخطأ اتصال الفيجوال ب sql server

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

السلام عليكم

اخواني حاولت اتصال ب sql server عن طريق الفيجوال باستخدام ADO

ظهر الخطأ التالي

login failed for user {sa} -reason not associated with trusted sql server connection --- 2147467259

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

الكود كالتالي --

 Dim cn As New ADODB.Connection
           cn.ConnectionString = "PROVIDER=SQLOLEDB;SERVER=office;DATABASE=accounting-inventory" _
           '& ";TRUSTED_CONNECTION =YES"
           If bintegratedsecurity = True Then
              cn.ConnectionString = cn.ConnectionString _
              & ";TRUSTED_CONNECTION=YES"
           Else
              cn.ConnectionString = cn.ConnectionString & ";UID=sa" _
              & ";PWD="
           End If
           
           cn.Open

وشكرا [l][/l][movel]

تم تعديل هذه المشاركة بواسطة walcom في 20 فبراير 2006 في 22:52

#2

مرحبا

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

TRUSTED_CONNECTION=YES

و في سطر اخر طلبت منه ان يتصل باسم sa و بدون كلمة مرور

";UID=sa" & ";PWD="

المسئلة هي اتصال بمحرك قاعدة البيانات فقط

اذا كنت قد صنعت اسم دخول في ال SQL Server فقم باستخدام هذا الاسم ، اي اذا صنعت user بالاسم abc و كلمة السر الخاصة به هي 123 فيجب ان تحدد ذلك

";UID=abc" & ";PWD=123"

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

Microsoft SQL Server

عند تركيبه على الجهاز يطلب منك ان تحدد طريقة الاتصال به لحظة التركيب ، و ذلك باستخدام كلمات المرور الخاصة بويندوس او كلمات المرور الخاصة ب SQL Server و Windows

اذا اخترت الاختيار الثاني فسيتم تفعيل كلمات السر الخاصة ب sql server و سيصبح ال sa هو الاسم المركزي و سيطلب منك ال sql server تحديد كلمة السر الخاصة به عند التركيب

بالطبع لو كنت تستخدم Windows 98 فهناك لا يوجد تعدد للمستخدمين ، اي يكفي ان تتاكد من وجود TRUSTED_CONNECTION=YES و تزيل PWD و UID من ال Connection String

اما ان رغبت باستخدام تعدد الصلاحيات الخاص ب SQL Server فيفضل ان تصنع اسم دخول و كلمة سر و تعطيهما صلاحيات على قاعدة البيانات من داخل SQL Server و تضعهم في ال connection string و تزيل TRUSTED_CONNECTION=YES

انا مش قادر اشرح الموضوع بصورة اكبر لانه انت وفرت معلومات قليلة جدا عن المشكلة ، لو واجهت مصاعب في القيام بالسابق برجاء شرح المشكلة بصورة اوسع مع اعطائي معلومات اكثر عن ال SQL Server و الجهاز

و لكني اعتقد انها تضارب بين ال TRUSTED_CONNECTION و ال UDI PWD حيث واحد منهما هو المطلوب فقط

بالتوفيق :)

#3

السلام

شكرا اخوي خضري على الرد

بخصوص المشكلة ----

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

و لو لاحظت انا باعطي الاختيار البرنامج في حالة اختيار المستخدمين الخاصين تبع sql والا windows 2000

كيف ممكن اقدر اغير الان الى تفعيل المستخدمين الخاصة بال sql server

في حالة تم تفعيل الخاصة windows2000 عند التركيب

والا لزوم اعادة التركيب

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

ملاحظة -- انا الان عندي حساب على sql server في نفس الوقت انا قد فعلت استخدام الحسابات تبع ويندوز عند التركيب

المفروض يرفض اضافة اي حساب

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

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

والشكر لله ثم لك ومجمل(f)

#4

في حال انك لم تفعل مستخدمين SQL Server عند التركيب فيمكنك القيام بذلك لاحقا و ذلك بالغط على اسم السيرفر بالزر الثاني للماوس و اختيار "خصائص" من القائمة التي ستظهر و البحث عن هذه الشاشة

sqlprp.png

يمكنك اختيار من الشاشة السابقة طريقة التعامل مع المستخدمين في SQL Server

تذكر تغير كلمة سر مستخدم ال sa بعد تفعيل كلمات السر في SQL Server

تنبيه تاني ، في حال انك اوقفت تفعيل المستخدمين الخاصيين ب SQL Server فهم لن يحذفوا ، ولكن SQL Server لن يستخدمهم في عمله ، اي انهم يبقوا بالداخل بدون ان يحذفوا

#5

شكرا اخوي خضر على الرد جدا مفيد

الان انا باتصل بsql على windows2000 server باستخدم المستحدمين تبع sql والان انا باحاول الاتصال على السيرفر باستخدام المستخدمين تبع windows2000 سمعت يقول افضل من استخدام sql security

-----------

فضلا لا امرا هناك سؤال فني في عملية فتح الملفات

كنت ابرمج على الكليبر under dos

فلاحظت اختلاف كبير بين الاثنين في البرمجة وعليه اسال بخصوص

فتح الملفات تحت الدوس وفي الشبكة كنا نحرص حرص شديد على ان تكون الملفات في حالة اغلاق الى حين الطلب وايضا كنا ما نستخدم الملفات الرئيسية ابدا الا حين الترحيل وفترات (ثواني) خوفا من عملية فقدان البيانات او تغيرها او خرابها وايضا كنا ننشأ ملفات مؤقته تسجل فيها جميع العمليات اليومية وتعطي الحركة الصحيحة والارصدة الصحيحة بوجود ملفات وسيطة تلغى في وقت الترحيل

المهم هنا اريد الوصول الى هل هناك طريقه معينة للتعامل مع الملفات والجداول

من حيث هل يتم فتح الملف والذي داخله جميع الجداول عند بداية تشغيل البرنامج من ثم فتح جدول جدول حسب الطلب عند دخول الفورم او فتح الملف عند دخول الفورم من ثم فتح الجداول المطلوبه

لهدا الفورم

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

اخوي ترى ما نستغنى عن نصايحك ولله ثم لك الشكر مقدما على

مابدلته معي من جهد وارجو ان يفيد اخواننا في المنتدى

وشكرا

#6

يختلف SQL Server عن كليبر اختلاف جذري حيث انتهي التعامل مع الملفات المباشر.

في كليبر لو اردت ان تعطي لاحد صلاحية التعديل في جدول ما فانت كنت بحاجة ان تعطيه صلاحية تعديل على الملف كله مما يؤثر سلبا على الصلاحيات.

في SQL Server هناك مفهوم اخر و هو برنامجان منفصلان عن بعضهما البعض يتحادثان عبر بروتوكول TCP/IP حتى و لو كانا على نفس الجهاز

في SQL Server عندما تتصل به فانت لا تتصل بالملف و انما تتصل ببرنامج اخر مسؤول عن حماية الملف، هذا البرنامج يتاكد من اسم دخولك و كلمة السر الخاصة بك و من ثم يحدد لك صلاحيات الوصول الى الجداول.

بكلمات اخرى انت لن تستخدم الملف و لن تكن لك امكانية للوصول اليه نهائيا، فبواسطة ADO كل ما عليك هو ان تطلب اسم الجدول و ال ADO من طرفك سيتصل ب SQL Server و يقوم بالواجب

شيئ اخر ، ستجد وجود لكل قاعدة بيانات تصنعها ملفين في SQL Server مرتبطين بهذه القاعدة، الملف لتخزين البيانات مفهرسة بواسطة خوارزميات تسمح لل SQL Server بالوصل الاسرع و معالجة هذه البيانات

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

الهدف من ذلك لو حدث شيئ للقرص الصلب الذي عليه الملف الاول (اذا كنت تستخدم نظم كبيرة) ستتمكن من استرجاع قاعدة البيانات عبر اخر نسخة احتياطية و ملف الحركات (ان كان على قرص صلب ثاني طبعا)

(ممكن ان يكون الملفين في نفس القرص الصلب لو استخدمت تكنولوجيا RAID5 في نظم السيرفر)

على العموم وجود Log File بيساعد محرك قواعد البيانات اصلاح الملف الرئيسي بصورة الية في حالة انقطاع الكهرباء المفاجئ، بحيث يجري SQL Server مقارنة عند كل تشغيل له ليتاكد ان العملية تمت في الملفين، و الا ستلغى العملية

شيئ اخر سيعجبك في نظام الملفات و هو ارجاع قاعدة البيانات الى الوراء ، تخيل انك وظفت مدخلي بيانات عبثوا بقاعدة البيانات بدون قصد ، يمكنك باستخدام ال Log File و ال Backup معا الطلب من SQL Server الالغاء العكسي للعمليات الى وقت محدد، مثلا ان يلغي كل العمليات التي تمت اخر ساعتين مثلا

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

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