اشکال در اتصال به بانک اطلاعاتی اسکیوال سرور
پس از نصب اسکیو ال سرور 2008 R2 بر روی ویندوز 2008 سرور و پس از بازگردان موفقيت آمیز بانکهای اطلاعاتی مربوطه که از سرور دیگری با اسکیو ال سرور 2008 بک آپ گرفته شده بودند برخی از سيستم های کاربران تحت ویندوز به خوبی توانستند پس از راه اندازی نرم افزار مربوطه به بانک های اطلاعاتی مورد نظر وصل شوند ولی برای برخی از کلاينتهای مشابه ديگر که از سيستم عامل ویندوز 7 و یا ويندوز ايکس پی استفاده مينمودند پيام خطا زیر نمایش داده شده و به بانک اطلاعاتی وصل نمیشوند . علت اين مشکل نامشخص است آیا با وضعيت موجود برخورد داشته ايد ؟ ممنون میشم اگر راه حلی به نظرتان ميرسد مطرح نماييد . ضمنا اسکیو ال نصب شده در يک instance جداگانه به صورت PC-NAME\MSSQLSERVER2008 نصب شده است .
[DBNETLIB][ConnectionOpen (Connect()).]SQL Server does not exist or access denied
7 پاسخ
خیلی ممنون از شما که برای بنده وقت گذاشتيد . واقعيتش مجبور شدم یکبار دیگه SQL SERVER 2008 را روی سرور نصب کنم اما اين دفعه به صورت Default و بدون نام گذاری يک Instance جداگانه به گونه ایکه مستقيما از طریق آی پی قابل دسترسی بود و بانکهای اطلاعاتی را مجددا Attach نمودم . مشکل حل شد و همه سيستمها با موفقيت Connect شدند ولی خیلی مشتاقم بدونم دليل اين قضیه چی بود . خوشحال ميشم اگر بتونيد راهنمایی بفرمایید .
البته متوجه شدم چگونه با تنظیم نمودن يک فايل udl ارتباط با اسکیو ال سرور را تست کنم وقتی از حالت pcname/instance استفاده ميکنم نه با telnet و نه با udl از طریق client نمیتونم connect بشم ولی حالا به حالت default نصب شده دوم به راحتی وصل میشم .
با تشکر
ممکنه لطف بفرماييد و درخصوص ساختن فايل udl هم توضیح بیشتری بفرماييد زیرا که من با اين روش آشنایی زيادی ندارم . ممنون .
با سلام مجدد . ممنون از اينکه وقت ميگذاريد . در خصوص وضعيت شبکه سيستم ها بصورت workgroup و نه دامين به همديگر وصل هستند ضمنا پورت های مربوطه باز هستند گرچه فایروال آنتی ويروس ها فعاله ولی اين پورت ها و آی پی ها مشکل دسترسی ندارند .
ضمنا درخصوص نرم افزارها همگی یک برنامه حسابداری دارند که با بورلند دلفی هفت نوشته شده و کانکشن داخل برنامه ها همگی با استفاده از يک کامپوننت مشابه ADO Connection با دیتابیس اصلی ارتباط برقرار میکنند .
نکته جالب که شاید لازم باشم بگم اینه که با این که همه سيستمها آی پی همديگه رو پينگ ميکنند ولی وقتی نام کامپيوتر سيستم سرور را داخل MyComputer تايپ میکنم با پيغام خطای Connection مواجه میشم و صفحه ای باز نميشه اما از طریق آی پی کاملا دسترسی به فولدرهای Share سرور داريم !!!
و برای ارتباط با اسکیوال سرور مربوطه به دليل آنکه بصورت Instance جداگانه ای نصب شده نیاز به استفاده از نام سيستم هست یعنی pc-name/MSSQLSERVER2008 اما به جای PC-NAME آی پی نمیتونیم استفاده کنیم . (محدوديت Application) .
سلام دوباره؛
زمانی که از DefaultInstance استفاده می شود SQL به صورت پیش فرض با پورت 1433 TCP کار می کند. اما وقتی یک NamedInstance نصب می شود، سرویس دیگری به نام SQL Server Browser (که می بایست حتماً Start شود) با پورت 1434 UDP ارتباط با Instanceها را Handle می کند و می بایست در فایروال Allow شده باشد.
ضمن اینکه در این حالت پورت SQL Server برای آن Instance به صورت داینامیک است و چند راه برای دست یافتن به آن شماره پورت وجود دارد. و البته می توان آن را به صورت استاتیک و ثابت نیز قرار داد. اما برای راحتی کار، می توان فایل اجرایی SqlServr.exe را کلاً در فایروال تعریف نمود تا نیاز به باز کردن پورت خاصی نباشد:
C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Binn\sqlservr.exe
سلام؛
اگر اطمینان دارید که تنظیمات برنامه و همچنین شرایط ارتباطی و شبکه و فایروال بین کلاینت و سرور، مشابه سیستم هایی است که مشکل اجرا ندارند، کنترل کنید که نرم افزار امنیتی روی کلاینت مانع ارتباط (Outbound) با پورت های 1433 و 1434 سرور نشود.
2 تست هم می توانید انجام دهید:
1- Telnet به پورت 1433 و 1434؛ مثلاً: Telnet ServerNameOrIP 1433
2- ساخت یک فایل با پسوند udl و انجام تنظیمات ارتباطی مشابه تنظیمات برنامه از نظر Authentication
- همچنین اگر با کاربر معمولی تحت دامین وارد ویندوز کلاینت شده اید، تست کنید که با Local Admin یا Domain Admin هم همین خطا رخ می دهد یا خیر.
به نظر میاد که سرور شما برای دیگر کامپیوتر ها Visible نیست. در قسمت Network Connection تنظیماتی است که باید انجام دهید.
البته الان حضور ذهن ندارم.
با سلام
شما تماما دارید از Windows User استفاده می کنید یا SQL User هم وجود دارد؟
آیا شما SID کاربران در پایگاه داده را به روز رسانی کرده اید؟
از چه Library برای ارتباط با پایگاه داده استفاده می کنید؟ به نظر OLEDB .Net یا SQLConnection نیست.