PDA

View Full Version : سوال: فرم ساخت ConnectionString برای برنامه هایی که قصد شبکه کردن آنها رو داریم.



JaVa
دوشنبه 07 اسفند 1391, 10:01 صبح
سلام و درود بر شما.


وقتی که می خوام برای کامپیوتر سرور رشته اتصال بسازم مثلا اگه اسم کامپیوتر سرور sys4-pc باشه در قسمت Datasource رو برابر sys4-pc قرار می دم و اعتبار سنجی ویندوز هم انتخاب میکنم و رشته اتصال رو می سازم.
اما وقتی برای کامپیوتر سرور یا کامپیوتر کلاینت با فرض اینکه اسم sql server باشه sys4 باشه sys4-pc\sys4 رو وارد می کنم رشته اتصال ساخته نمی شه(لاگین و تنظیمات مربوط به اس کیو ال رو هم انجام دادم) .

رشته اتصالی که در کامپیوتر سرور درست میشه :

workstation id=MRG-pc;packet size=4096;Integrated Security=SSPI;data source=MRG-pc;persist security info=True;initial catalog= LIBRARY

ولی این رشته رو قبول نمی کنه

workstation id=.\MRG-pc;packet size=4096;user id=MRG-Server; password=1234;data source=MRG-pc;persist security info=True;initial catalog= LIBRARY

مشکل چیه ؟!؟

sgn2006
دوشنبه 07 اسفند 1391, 11:07 صبح
سلام
با ip امتحان کن ببین می شه ...
معمولا اسم سرور رو ساده انتخاب می کنن مثلا Server ، نام کامپیوتر سرور رو عوض کن به این نام ببین درست می شه ...
یه چیز دیگه ....Sql معمولا اسم سرور رو با حروف بزرگ بهتر تشخیص می ده ... اینم امتحان کن

JaVa
دوشنبه 07 اسفند 1391, 11:15 صبح
سلام
با ip امتحان کن ببین می شه ...
معمولا اسم سرور رو ساده انتخاب می کنن مثلا Server ، نام کامپیوتر سرور رو عوض کن به این نام ببین درست می شه ...
یه چیز دیگه ....Sql معمولا اسم سرور رو با حروف بزرگ بهتر تشخیص می ده ... اینم امتحان کن

من به سیتمم IP 192.168.0.1 دادم و دستور Ping رو هم زدم و مشکلی نبود.

کانکشن استرینگ رو هم به این صورت نوشتم :

"Password=1234;User ID=MRG-Server;Initial Catalog=Library;Data Source=192.168.0.1\MRG-PC"




http://barnamenevis.org/attachment.php?attachmentid=100520&d=1361777713

veniz2008
دوشنبه 07 اسفند 1391, 11:20 صبح
سلام.
دوتا بک اسلش بزنید . یعنی :

Data Source=192.168.0.1\\MRG-PC

JaVa
دوشنبه 07 اسفند 1391, 11:32 صبح
سلام.
دوتا بک اسلش بزنید . یعنی :

Data Source=192.168.0.1\\MRG-PC

"Password=1234;User ID=MRG-Server;Initial Catalog=Library;Data Source=192.168.0.1\\MRG-PC"

بازم همون پیام بالا رو نشون میده:متفکر:

veniz2008
دوشنبه 07 اسفند 1391, 11:37 صبح
چند تا مورد رو میگم ببینید انجام دادید یا نه.
1. تنظیمات شبکه ( تنظیمات بخش sql server configuration manager و تعریف یوزر درون sql server management studio )
2. غیر فعال کردن فایروال سیستم سرور (یا معرفی پورت مورد استفاده برای اجازه دسترسی)

JaVa
دوشنبه 07 اسفند 1391, 11:39 صبح
نمی دونم چرا وقتی این حالتی می نویسمش مشکلی نمی گیره

"Password=1234;User ID=MRG-Server;Initial Catalog=Library;Data Source=MRG-PC"

sgn2006
دوشنبه 07 اسفند 1391, 11:39 صبح
یه چیزیو تست کن ...
توی یکی از کلاینت ها (ترجیحا لب تاپ خودت) وصل شده به سرور باشه ...
SQL Server Management Studio رو باز کن ببین با چه ServerName وارد SQL می شه (با ip با Name با ip\MRG... با Name\Mrg...) خلاصه اگر تونستی وارد شی همون ServerName رو بزار توی DataSource

البت با SQL SerVer Autthentication باید وارد شی (می دونم که خودت می دونی اینو :چشمک:)

veniz2008
دوشنبه 07 اسفند 1391, 11:51 صبح
شما به سوالات من جواب ندادی.
الان سیستم ها رو با هم شبکه کردی دیگه؟
به این سوالات جواب بده تا قدم قدم جلو بریم.

JaVa
دوشنبه 07 اسفند 1391, 12:30 عصر
1. تنظیمات شبکه ( تنظیمات بخش sql server configuration manager و تعریف یوزر درون sql server management studio )

من تنظیمات رو مرحله به مرحله که انجام میدم رو می نویسم ببینید درسته یا نه:

SQL SERVER Cnfiguration manager رو باز می کنم و از قسمت SQL server networf Configuration گزینه protocols for MSSQLSERVER انتخاب میکنم.

گزینه TCP\IP رو هم انتخاب میکنم از تب protocol هم گزینه Yes رو برای enable انتخاب می کنم.

از تب IP address هم عکس گرفتم که دیگه بیانگر همه چی باشه:


100532


در قسمت IP ALL گزینه TCP Dynamic Ports من برابر 1433 قرارش می دم ولی بعد از ریستارت کردن برابر 3848 قرار میگیره ؟؟؟؟؟



بعد از تایید اون فرم. مرم توی قسمت SQL SERVER SERVICES و SQL Server(MSSQLSERVER) رو ریستارت می کنم.

بعد توی خود SSMS میرم و روی سرور راست کلیک می کنم و دکمه ریستارت رو میزنم.

بعد د قسمت Security در قسمت login اسم MRG-Server رو میزنم و تیک گزینه user must change password at next login رو غیر فعال می کنم در ثب server rolesهم public , sysadmin رو فعال می کنم. بعد توی user mapping هم بانکم رو انتخاب میکنم در پایان OK رو می زنم.



2. غیر فعال کردن فایروال سیستم سرور (یا معرفی پورت مورد استفاده برای اجازه دسترسی)

فایر وال رو خاموش می کنم و در قسمت advanced setting در inbound rules یک new rule ایجاد می کنم و و با پورت 1433


الان سیستم ها رو با هم شبکه کردی دیگه؟
بله اول نبودن بعد شبکشون کردم.
(ولی اگه توی سیستم سرور )

"Password=1234;User ID=MRG-Server;Initial Catalog=Library;Data Source=MRG-PC"

قبول میکنه

ولی اینو نه:

"Password=1234;User ID=MRG-Server;Initial Catalog=Library;Data Source=192.168.0.1\\MRG-PC"

اگه چیزی رو از قلم انداختم بگید انجام بدم.

من خیلی عجله دارم بخاطر همین اکثر توضیحات رو نوشتم.

امیدوارم شما توضیحات کاملی رو به من بدید

veniz2008
دوشنبه 07 اسفند 1391, 12:59 عصر
من تنظیمات رو مرحله به مرحله که انجام میدم رو می نویسم ببینید درسته یا نه:

SQL SERVER Cnfiguration manager رو باز می کنم و از قسمت SQL server networf Configuration گزینه protocols for MSSQLSERVER انتخاب میکنم.

گزینه TCP\IP رو هم انتخاب میکنم از تب protocol هم گزینه Yes رو برای enable انتخاب می کنم.
در قسمت IP ALL گزینه TCP Dynamic Ports من برابر 1433 قرارش می دم ولی بعد از ریستارت کردن برابر 3848 قرار میگیره ؟؟؟؟؟
دلیلش اینه شما روی سیستمت دو نسخه از sql server رو نصب داری (مثلا 2005 و 2008 ). در چنین حالتی نسخه اول رو به عنوان پورت پیش فرض یعنی 1433 میشناسه. دلیل تغییر پورت به 3848 هم همینه. شما با نسخه دوم sql نصب شده وارد میشی (مثلا با 2008) بنابراین یه پورت جدید بهتون اختصاص میده و باید در برنامتون از همین پورت جدید استفاده کنید.


بعد از تایید اون فرم. مرم توی قسمت SQL SERVER SERVICES و SQL Server(MSSQLSERVER) رو ریستارت می کنم.دومین موردی که باید تصحیح کنید همینجا هست. باید اون Instance مربوط به نسخه دوم رو restart کنی نه mssqlserver رو. بذارید بیشتر توضیح بدم. من روی سیستم خودم دو نسخ از Sql دارم یکی 2005 که روی default instance نصب کردم و دومی 2008 که اسمشو گذاشتم MD2008 . حالا زمانیکه میخوام 2008 رو به عنوان سرور استفاده کنم باید SQL Server(MD2008 رو ری استارت کنم.


بعد توی خود SSMS میرم و روی سرور راست کلیک می کنم و دکمه ریستارت رو میزنم.فعلا نیازی به این کار نیست.


بعد د قسمت Security در قسمت login اسم MRG-Server رو میزنم و تیک گزینه user must change password at next login رو غیر فعال می کنم در ثب server rolesهم public , sysadmin رو فعال می کنم. بعد توی user mapping هم بانکم رو انتخاب میکنم در پایان OK رو می زنم.در management studio ابتدا بر روی نام سرور راست کلیک کنید و گزینه properties رو بزنید و از قسمت security گزینه sql server and windows authentication رو انتخاب کنید و گزینه faild logins only رو انتخاب و پنجره ها رو ok کنید. حالا بر روی نام سرور راست کلیک کنید و ری استارت کنید. بعدش یک یوزر جدید تعریف کنید (طبق همون مراحلی که خودتون ذکر کردید) بصورت شکل زیر :

100534

در انتها کانکشن استریگ رو بصورت زیر تعریف کنید(فرض کردم یک یوزر با نام veniz1 و با پسورد 1234567 ایجاد کردید) :

Data Source = 192.168.0.1,3848;Network Library = DBMSSOCN;Initial Catalog = university;User ID=veniz1;Password = 1234567
http://barnamenevis.org/images/misc/pencil.png

JaVa
دوشنبه 07 اسفند 1391, 13:22 عصر
دمت گرم.

فقط با دکمه تشکر نمی شه ازت تشکر کرد.

ممنون از لطفتون حل شد.:تشویق::لبخندساده::قلب: