PDA

View Full Version : جلوگیری از خطای "SQL Server 2005 does not allow remote connections"



Behrouz_Rad
چهارشنبه 18 بهمن 1385, 08:36 صبح
با عرض پوزش از مدیران گرامی، این تاپیک به دلیل حساسیت موضوع و مطرح شدن آن در دو بخش از جانب کاربران، در 2 بخش " SQL Server" و "بحث و گفتگوی دات نت" ایجاد شده.

خطایی که در شکل زیر مشاهده می کنید، خطای متداولی هست که برای اکثر دوستان برنامه نویس (از جمله بنده) رخ داده:
http://i13.tinypic.com/450rldt.gif
پس از اینکه تمامی اینترنت رو وجب به وجب جستجو کردم و همگی راه حل ها به انجام تنظیماتی در SQL Server برای دادن مجوز Remote Connections منتهی میشد و تمامی این تنظیمات به طور پیش فرض (حداقل در نسخه ی Enterprise) ست شده اند، هیچکدام مشکل بنده را حل نکرد!، در نهایت در یک حرکت انتحاری(!)، موفق شدم این مشکل رو حل کنم.
با توجه به اینکه گفته میشد Connection String در نسخه ی 2000 و 2005 تغییری نکرده، وقت خود را صرف دستکاری پارامترهای Connection String کردم و در نهایت تعجب(!) و شگفتی بسیار، متوجه شدم که عبارت "Data Source" در Connection String باعث بروز خطای فوق میشه!!!
به جای این عبارت، کلمات "Database" یا "Initial Catalog" باید قرار بگیرند!

مشکل بنده از این طریق حل شد.
دوستان دیگه هم اگر این مورد رو تست کنند، لطف بسیاری کردند.

موفق باشید.

vrassouli
چهارشنبه 25 بهمن 1385, 08:21 صبح
البته این مشکل میتونه به تنظیمات Firewall هم ربط داشته باشه. شما باید به sqlservr.exe اجازه دسترسی بدید (البته اگر فایروال بلاکش کرده باشه)

quack
پنج شنبه 26 بهمن 1385, 07:56 صبح
یه سری به اینجا بزن :
http://connectionstrings.com/

coldsummer
شنبه 17 شهریور 1386, 00:26 صبح
آقای راد پیشنهاد شما مشکل رو حل نمی کنه با این روش حتی اگر جلوی عبارت "Database" یا "Initial Catalog" چیزی هم نوشته نشه یا یه عبارت نادرست وارد بشه مشکلی پیش نمی آد و کار انجام می شه من هم این مشکل رو وقتی که آدرس آی پی 127.0.0.1 رو جلوی عبارت Data Source یا server‌ تایپ می کنم دارم و متاسفانه هنوز هم راه حلشو پیدا نکردم می شه گفت راه حل شما با توجه به اینکه خیلی هم واسه به دست آوردنش تلاش کردید یه جورایی صورت مسئله رو پاک می کنه من این راهی رو که شما گفتین تست کردم و جلوی اون عبارات کلمات نادرست تایپ کردم و حتی عبارت Data Source روهم پاک کردم به شکلی که توی کانکشن استرینگ فقط دوتا پارامتر Databaseو integrated security باقی موند ولی با اجرای برنامه دیدم که هیج مشکلی پیش نمی اد و دستورات SQL هم اجرا می شه البته خودتون هم می تونین تستش کنین
امیدوارم راه حل این مشکل واسه ی همه مون مشخص بشه
ممنون

Behrouz_Rad
شنبه 17 شهریور 1386, 08:04 صبح
دوست من.
این یک خطای عمومی هست که یکی از دلایلش میتونه اونی باشه که گفتم.
در حقیقت این خطا علت دلیل بروز مشکل رو مشخص نمی کنه.
اگر Connection String اشتباه باشه، اگر Firewall از اتصال جلوگیری کنه، اگر Remote Connection تنظیم نشده باشه و ...
اینها میتونن تعدادی از دلایل باشن.

موفق باشید.

dehghanimeh
چهارشنبه 14 آذر 1386, 13:31 عصر
با سلام خدمت دوستان
من با هیچ راهی نتونستم به صورت remote به sql 2005 وصل بشم(به صورت local مشکل ندارم)
تنظیم قابلیت اتصال remote رو هم روی sql فعال کردم
ولی باز هم نشد

hdv212
جمعه 16 آذر 1386, 10:59 صبح
تمام مشکل ها سر start نبودن سرویس Sql Browser هست، باید این سرویس رو Start کرده باشید. (البته مشخصه که tcp/ip هم باید فعال باشه)

babakj
پنج شنبه 11 بهمن 1386, 15:51 عصر
به SQL SERVER Configuration manager رفته
در قسمت SQL clinet Native Configuration پس از ورود به قسمت Client Protocols بر روی
TCP/IP رایت کلیک کرده گزینه properties را انتخاب نمایید
سرانجام در قسمت Default Port شماره 1433 یعنی پورت قابل تماس برای SQL را وارد نمایید و در نهایت TCP/IP را Enabale نمایید
برای اطلاعات بیشتر هم می تونید به این لینک مراجعه نمایید
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=192622&SiteID=1

http://support.microsoft.com/kb/914277

mpmsoft
شنبه 18 اسفند 1386, 23:03 عصر
دوست عزیز رو Firewall ویندوز هم باید پورت 1433 رو باز بکنی در غیر این صورت Firewall جلوی ورود رو می گیره.

zahracomputer
دوشنبه 26 فروردین 1387, 00:05 صبح
سلام
من هم با مشکل فوق مواجه شدم، قسمت connection string ، کلمه data base رو نمیشناسه ،در sql browser گزینه start غیر فعال است.چرا؟
قسمت firewal را چگونه باید تنظیم کنم.
با تشکر

3411338M
سه شنبه 16 تیر 1388, 17:24 عصر
منم همین مشکل رو دارم اگر که کسی راه حلشو فهمید به منم بگه
من با انواع connection string ها چک کردم ولی جواب نداد
به صورت local هم دسترسی دارم

hdv212
چهارشنبه 17 تیر 1388, 00:34 صبح
منم همین مشکل رو دارم اگر که کسی راه حلشو فهمید به منم بگه
من با انواع connection string ها چک کردم ولی جواب نداد
به صورت local هم دسترسی دارم
از استارت بودن سرویس SqlBrowser اطمینان حاصل کنید.
مطمئن بشید که پروتکل TCP/IP مربوط به Instance اس کیو ال سرور نصب شده روی سیستمتون فعال باشه.
مطمئن باشید که FireWall خاموش باشه
مطمئن باشید که گزینه Allow Remote Connection در Sql Server تون فعال باشه
اگر همه ی این کارها رو انجام دادید و باز هم جواب نگرفتید، سعی کنید به جای نام سرور، IP سرور رو بدید.

shervin_agh67
پنج شنبه 12 آذر 1388, 00:56 صبح
من دیتابیسم تخت شبکه بود و تمام این تنضیمات رو هزاران بار بررسی کردم حتی فعال بودن پورت رو توسط nmap بررسی کردم تا آخر جوابش رو پیدا کردم .
مشکل در روش authentication من به دیتابس بود که احتمالا خیلی از دوستان هم همین مشکل رو دارن .
زمانیکه شما از windows authentication استفاده می کنید و حالت شبکه هم workgroup هست شما اجازه دسترسی ندارید. من برای رفع این مشکل وارد بخش امنیتی SQL server شدم تا اجازه دسترسی کامپیوتر خودم رو بهش بدم . ولی هر کاری کردم موفق به پیدا کردن نام کامپیوتر موجود در workgroup نشدم با اینکه من تمام تنظیمات ویندوز رو انجام دادم و همه جای ویندوز این کامپیوتر رو میشناخت ولی بازم نشدم. من کل اینترنت رو برای این موضوع سرچ کردم ولی هیچ اشاره ای به این قضیه نشده . در نهایت مجبور شدم شبکه رو در حالت Domain قرار بدم و مشکل حل شد. شما هم اگه این مشکل رو دارید و سیستم عامل سرور استفاده نمی کنید بهتره از حالت Sqlserver authentication mode استفاده کنید.
ولی برام خیلی جالب بود که تو حالت workgroup کار نکرد لطفا کسی اگه راهشو می دونه به من بگه و من رو از این سرگردانی خلاص کنه.

hdv212
پنج شنبه 12 آذر 1388, 01:23 صبح
من دیتابیسم تخت شبکه بود و تمام این تنضیمات رو هزاران بار بررسی کردم حتی فعال بودن پورت رو توسط nmap بررسی کردم تا آخر جوابش رو پیدا کردم .
مشکل در روش authentication من به دیتابس بود که احتمالا خیلی از دوستان هم همین مشکل رو دارن .
زمانیکه شما از windows authentication استفاده می کنید و حالت شبکه هم workgroup هست شما اجازه دسترسی ندارید. من برای رفع این مشکل وارد بخش امنیتی SQL server شدم تا اجازه دسترسی کامپیوتر خودم رو بهش بدم . ولی هر کاری کردم موفق به پیدا کردن نام کامپیوتر موجود در workgroup نشدم با اینکه من تمام تنظیمات ویندوز رو انجام دادم و همه جای ویندوز این کامپیوتر رو میشناخت ولی بازم نشدم. من کل اینترنت رو برای این موضوع سرچ کردم ولی هیچ اشاره ای به این قضیه نشده . در نهایت مجبور شدم شبکه رو در حالت Domain قرار بدم و مشکل حل شد. شما هم اگه این مشکل رو دارید و سیستم عامل سرور استفاده نمی کنید بهتره از حالت Sqlserver authentication mode استفاده کنید.
ولی برام خیلی جالب بود که تو حالت workgroup کار نکرد لطفا کسی اگه راهشو می دونه به من بگه و من رو از این سرگردانی خلاص کنه.

خب مشخصه که وقتی شما از Windows Authentication استفاده میکنید نمیتونید از یک کامپیوتر دیگه به Sql Server متصل بشید، چون ویندوز اجازه اتصال اون کاربر کامپیوتر مهمان رو به Sql Server نمیده، از اینرو برای اتصال به Sql Server از یک سیستم دیگه شما باید حتما از Sql Server Authentication استفاده کنید تا هویت شما مستقیما توسط Sql Server بررسی بشه، اما اگر میخواهید از Windows Athentication در اتصال Client/Server استفاده کنید، باید در سطح دامین از این نوع اتصال استفاده کنید تا سرور دیتابیس بتونه از طریق Active Directory هویت شما رو بررسی کنه.
امیدوارم این مطالب بتونه کمکتون کنه.

shervin_agh67
پنج شنبه 12 آذر 1388, 11:17 صبح
خوب ولی وقتی شما تو قسمت security برنامه دارید دسترسی کاربران رو تعیین می کنید به شما اجازه میده که به یک کامپیوتر هم اجازه دسترسی بدید خوب اجازه دسترسی به یک کامپیوتر در حالت دامین که معنی ندازه چون شما تو حالت دامین با یوزرهای سرورتون لاگین می کنید و همه عضو یک مجموعه هستید بنابراین منظورش workgroup بوده. جالبیش به اینه که استاد بی سودا ما هم از این موضوع خبر نداشت و می گفت تو حالت workgroup هم کار میکنه بعدا که فهمید کلی ضایع شد.

hdv212
پنج شنبه 12 آذر 1388, 13:05 عصر
خوب ولی وقتی شما تو قسمت security برنامه دارید دسترسی کاربران رو تعیین می کنید به شما اجازه میده که به یک کامپیوتر هم اجازه دسترسی بدید خوب اجازه دسترسی به یک کامپیوتر در حالت دامین که معنی ندازه چون شما تو حالت دامین با یوزرهای سرورتون لاگین می کنید و همه عضو یک مجموعه هستید

منظور شما رو درست متوجه نشدم، ولی در سطح دامین، کاربرانی که در Sql Server حساب دارن میتونن به دیتابیس سرور وصل بشن، همینطوری هر کاربری اجازه اتصال به دیتابیس سرور رو نداره.