PDA

View Full Version : Login failed for user <ServerName\guest>



hkiani
چهارشنبه 06 اردیبهشت 1385, 20:19 عصر
با سلام خدمت همه دوستان
اول باید بگویم که من برای برطرف شدن مشکل در سایت جستجو کردم و بیش از 30 تاپیک را در همین زمینه مطالعه کردم. در وب نیز جستجو کرده و تمام توصیه‌های داده شده را بکار بستم ولی مشکلم حل نشده و مدتهاست که مشغول بررسی این مشکل هستم. حال آن را با جزئیات کامل می‌نویسم:
در یک شبکه (با سیستم عامل ویندوز XP) من SQL Server 2000 را با انتخاب Mixed Authentication Mode نصب کرده‌ام. یک بانک اطلاعاتی بر روی سرور دارم که از درون برنامه‌ام که با سی بیلدر و کامپوننت‌های ADO نوشته شده، از روی سرور براحتی با آن ارتباط برقرار می‌کنم.
اما وقتی برنامه را از روی یک کلاینت اجراء می‌کنم پیغام خطای زیر ظاهر می‌شود:
Login failed for user Mehdi\Guest.
Mehdi نام سرور و همچنین نام SQL Server Instance می‌باشد. برای اتصال از همان کانکشن استرینگی که در روی سرور استفاده می‌کنم بر روی کلاینت نیز بهره برده شده فقط WorkStation را برابر نام کامپیوتر کلاینت قرار می‌دهم (یعنی Elham).
لازم به ذکر است که یک لاگین با نام Elham و پسورد Elham در SQL Server درست کرده‌ام و Authentication آن را از نوع SQL Server قرار داده‌ام و قابلیت دسترسی به بانک اطلاعاتیم را نیز به آن داده‌ام.
نکته دیگر اینکه پیغام فوق بعد از پرسیدن یوزر و پسورد و وارد کردن آنها بطور کاملا دقیق رخ می‌دهد.
با همین یوزر و پسورد با کمک Query Analyzer از روی کلاینت می‌توانم به بانک اطلاعاتیم وصل شوم و اطلاعات آن را ببینم.
طی جستجو در اینترنت به لینکی (http://www.jsifaq.com/subP/TIP7600/rh7631.htm)برخورد کردم که دقیقا همین پیغام خطا را مطرح کرده بود و راه حل برطرف کردن آن را غیر فعال کردن Use Simple File Sharing (Recomended) گفته بود. من این کار را هم بر روی سرور و هم بر روی کلاینت انجام دادم و بعد از restart کردن کامپیوترها هیچ تغییری مشاهده نکردم.

حال آیا از دوستان کسی هست که در این زمینه بتواند به من کمک کند؟ چه نکات دیگری در این زمینه باید مد نظر قرار گیرند.
قبلا از شما متشکرم.

AminSobati
چهارشنبه 06 اردیبهشت 1385, 23:46 عصر
دوست عزیزم،
لطفا Connection String که در Client استفاده میکنید ( و مشکل دارید) رو پست بفرمایید

hkiani
پنج شنبه 07 اردیبهشت 1385, 07:22 صبح
با تشکر از توجه شما

AdoConnection->ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=HkmAlbumXDbc;Data Source=Mehdi;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=Elham;Use Encryption for Data=False;Tag with column collation when possible=False";
AdoConnection->Open("Elham", "Elham");

AminSobati
پنج شنبه 07 اردیبهشت 1385, 10:27 صبح
دوست عزیزم،
این Connection String داره از Windows Authentication استفاده میکنه. طبیعیه که Login Failed بده! با توجه به اینکه شما لاگین از نوع SQL Authentication ساختین، باید ازش استفاده کنین در Connection String:


Provider=SQLOLEDB.1;Persist Security Info=False;User ID=Elham;Password=Elham;Initial Catalog=HkmAlbumXDbc;Data Source=Mehdi

hkiani
پنج شنبه 07 اردیبهشت 1385, 16:03 عصر
خیلی از راهنمایی شما ممنونم.
مورد فوق را امتحان می‌کنم. در صورت نیاز مجددا مزاحمتان خواهم شد.

Omid Rekabsaz
پنج شنبه 07 اردیبهشت 1385, 17:40 عصر
به نظر من در برنامه تان از فایل udl استفاده نمایید... چون در Component زیر TAdoConnection هم می توانید از Connection String و هم از File Name استفاده نمایید...

hkiani
سه شنبه 12 اردیبهشت 1385, 03:52 صبح
با تشکر مشکل من حل شد.

به نظر من در برنامه تان از فایل udl استفاده نمایید... چون در Component زیر TAdoConnection هم می توانید از Connection String و هم از File Name استفاده نمایید...
در آن صورت چه فرقی خواهد کرد؟