# پایگاه‌های داده > SQL Server >  نحوه اتصال به sql server واقع در هاست

## mjanbazi

با سلام من در هاست خود یک اس کیو ال سرور راه انداختم و برای آن یوزر و پسورد تعریف کردم
سپس در sql management studio به آن به صورت ریموت وصل شدم و یوزر و پسور را زدم و وصل شد و مشکلی نداشت
حال من می خواهم با زبان برنامه نویسی مثل وی بی 6 یا وی بی دات نت به این پایگاه داده در هاست خود اتصال برقرار کنم
می خواستم connection string بدونم
ممنون می شم جواب بدهید

دوستان من نمی خوام با asp یا php به صورت local  به آن وصل شوم 
یعنی صفحات asp  را آپلود کنم و در خود هاست به اس کیو ال وصل شوم این همان لوکالی یا از کامپیوتر خود می شود که بلد هستم
من می خواهم با یک زبان برنامه نویسی برنامه ای را طراحی کنم که این امکان را داشته باشد به اس کیو ال سرور یک هاست متصل شود
باتشکر

----------


## ar.shirazi

> با سلام من در هاست خود یک اس کیو ال سرور راه انداختم و برای آن یوزر و پسورد تعریف کردم
> سپس در sql management studio به آن به صورت ریموت وصل شدم و یوزر و پسور را زدم و وصل شد و مشکلی نداشت
> حال من می خواهم با زبان برنامه نویسی مثل وی بی 6 یا وی بی دات نت به این پایگاه داده در هاست خود اتصال برقرار کنم
> می خواستم connection string بدونم
> ممنون می شم جواب بدهید
> 
> دوستان من نمی خوام با asp یا php به صورت local  به آن وصل شوم 
> یعنی صفحات asp  را آپلود کنم و در خود هاست به اس کیو ال وصل شوم این همان لوکالی یا از کامپیوتر خود می شود که بلد هستم
> من می خواهم با یک زبان برنامه نویسی برنامه ای را طراحی کنم که این امکان را داشته باشد به اس کیو ال سرور یک هاست متصل شود
> باتشکر


در این سایت میتوانید جواب سوال خود را پیدا کنید:
http://www.connectionstrings.com/

----------


## saied_genius

> با سلام من در هاست خود یک اس کیو ال سرور راه انداختم و برای آن یوزر و پسورد تعریف کردم
> سپس در sql management studio به آن به صورت ریموت وصل شدم و یوزر و پسور را زدم و وصل شد و مشکلی نداشت
> حال من می خواهم با زبان برنامه نویسی مثل وی بی 6 یا وی بی دات نت به این پایگاه داده در هاست خود اتصال برقرار کنم
> می خواستم connection string بدونم
> ممنون می شم جواب بدهید
> 
> دوستان من نمی خوام با asp یا php به صورت local به آن وصل شوم
> یعنی صفحات asp را آپلود کنم و در خود هاست به اس کیو ال وصل شوم این همان لوکالی یا از کامپیوتر خود می شود که بلد هستم
> من می خواهم با یک زبان برنامه نویسی برنامه ای را طراحی کنم که این امکان را داشته باشد به اس کیو ال سرور یک هاست متصل شود
> باتشکر


 
با سلام،

اگر شما واقعاً به صورت remote توانسته ايد به سرور خود وصل شويد پس تنظيمات سمت سرور را انجام داده ايد. (اميدوارم)

**براي دوستاني كه نمي دانند :****************************************
در صورتي مي توان به سرور وصل شد كه در سمت سرور، IP سرور به همراه Port ارتباطي را داشته باشيم. سرورهايي كه از آنها هاست مي گيريم مشكلي براي تنظيمات نداريم و خود آنها پورت را به همراه آي پي و user و pass براي ارتباط را به شما مي دهند.
اما اگر خودتان سرور راه اندازي كنيد بايد اين تنظيمات را انجام دهيد. (در صورت نياز به اطلاعات بيشر بگوييد تا بيشتر توضيح دهم.)
**************************************************  ************

در هر صورت ما نياز به آي پي و پورت داريم . Connection String ما به صورت زير خواهد بود.
(با فرض اينكه آدرس سرور ما 192.168.0.1 باشد)

 
 
Data Source=190.190.200.100,1433;Network Library=DBMSSOCN;Initial Catalog=myDataBase;User ID=myUsername;Password=myPassword;


يا

 
 
Data Source=190.190.200.100\Sqlexpress,1433;Network Library=DBMSSOCN;Initial Catalog=myDataBase;User ID=myUsername;Password=myPassword;


**در صورتي كه Alternative دارد


البته Connection String استاندارد طبق زير است، خودم به شخصه استفاده كردم جواب داده (البته شبكه داخلي ، بر روي اينترنت را نمي دانم.)

 
Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;


Server / Data Source: آي پي سرور به همراه پورت مورد نظر (1433 پورت پيش فرض SQLServer 2005 است)
Network Library: به جاي DBMSSOCN بايد TCP/IP را قرار دهيد چون به احتمال زياد از TCP/IP استفاده مي كنيد.
Initial Catalog: نام ديتابيس خود كه موجود است بر روي سرور و اجازه دسترسي به آن را داريد.
User ID: نام كاربري تعريف شده براي شما بر روي SQLServer سرور.
Password: رمز عبور تعريف شده براي شما بر روي SQLServer سرور.

در صورت هرگونه سوال در خدمتم.

موفق باشيد.

----------


## ab1234

> .
> اما اگر خودتان سرور راه اندازي كنيد بايد اين تنظيمات را انجام دهيد. (در صورت نياز به اطلاعات بيشر بگوييد تا بيشتر توضيح دهم.)
> .


 
سلام دوست عزیز
من دقیقا دارم دنبال همین می گردم
می خوام سایتم رو روی سرور خودم راه بندازم ولی باید همزمان از چند نقطه دیگه به سایت ریموت کنم .
اگه ممکنه توضیح بدید تنظیمات SQL رو چه جوری باید انجام بدم ، چه ورژنی رو باید نصب کنم ، چجوری یوزر و پسورد تعریف کنم و.... 
متشکرم

----------


## saied_genius

::::::براي فعال كردن remote براي sqlserver بر روي سرور::::: 
1- از قسمت windows firewall : سر برگ exception : دكمه add program : كليك كرده و sqlserver خود را اضافه نماييد.

2- در sql server configuration manager : قسمت sql server 2005 network configuration : سپس protocols : سپس enabled را yes كنيد : سپس در سمت راست TCP/IP دو بار كليك كنيد : سربرگ IP Address قسمت TCP Dynamic Ports : شماره پورت جهت remote مورد نظر خود را وارد نماييد.

3-در sql server surface area configuration : در قسمت service area configuration for services and connections : سپس قسمت database engine : در قسمت local and remote connections : گزينه using TCP/IP only را فعال نماييد.

موفق باشيد.

----------


## ab1234

واقا ممنونم آقا سعید  :لبخند: 

اگه ممکنه یه توضیح مختصر بدید چجوری می تونم برای دیتا بیسم پسورد بذارم؟؟
آخه برای کانک شدن باید پسورد داشته باشه

یه سواله دیگه
اینکه یه پورت رو برای SQL باز می کنم امنیت سرور رو به خطر نمیندازه؟

بازم متشکرم

----------


## saied_genius

> واقا ممنونم آقا سعید 
> اگه ممکنه یه توضیح مختصر بدید چجوری می تونم برای دیتا بیسم پسورد بذارم؟؟
> آخه برای کانک شدن باید پسورد داشته باشه


 
براي پسورد داشتن بايد user بسازيد.

شايد ساختن user بحث مفصلي (در حد يك كتاب) داشته باشد؛ ولي به طور كلي ساختن آن به صورت زير است.

براي ساختن user:

1- از طريقSql Management Studio سرور مورد نظر را باز كنيد
2- فولدر Security را باز كنيد.
3- بر روي پوشه Logins كليكراست كرده و new Login را كليك نماييد.
4- در قسمت login name نام كاربري مورد نظر خود را وارد نماييد و در قسمت پايين تر در sql server authentication پاسورد و تاييد پسورد خود را وارد نماييد.
5- به قسمت user mapping برويد و ديتابيس مورد نظر خود را (كه مي خواهيد اين كاربر فقط به آن ديتابيس دسترسي داشته باشد) انتخاب نماييد.
6- به قسمت securables (از عنوان هاي سمت چپ) برويد.
7- بر روي add كليك نماييد و گزينه مورد نظر را انتخاب كنيد.
8- بر روي گزينه آخر كه بگذاريد كاربر به تمامي اطلاعات آن سرور كه مربوط به آن ديتابيس است را دسترسي خواهد داشت.
9- در صورتي كه مي خواهيد دسترسي محدودتري داشته باشد از گزينه هاي ديگر استفاده كنيد (كه خود بحث مفصلي دارد ).
10- در قسمت status (در سمت چپ) گزينه grant و Enable را (از سمت راست) انتخاب نماييد.
سپس بر روي ok كليك نماييد.

user شما آماده است.




> یه سواله دیگه
> اینکه یه پورت رو برای SQL باز می کنم امنیت سرور رو به خطر نمیندازه؟


چاره ديگري نيست.

مي توانيد با قرار دان يك user name خوب و يك password خوب با تنظيم سطح دسترسي مناسب اين مشكلات را به حداقل برسانيد.

ولي من توصيه نمي كنم خودتان سرور راه اندازي كنيد. به نظرم تا اطلاعات كافي و تجربه كافيبدست نياورده ايد از هاستينگ هاي شركت هاي معتبر استفاده نماييد.

موفق باشيد.

----------


## ab1234

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



ببخشید زیاد سوال می پرسم  :خجالت: 
اگه ممکنه یه توضیح مختصر هم در مورد این ارور بدید

متشکرم

----------


## slashslash2009

من هم این ارور رو دارم واسه چیه یه جاش میگه ورژن ویندوز مشکل متل اینکه : ویندوزه من SP3 هست امکان داره از ورژن ویندوز باشه لطفا help؟

----------


## saied_genius

مشكل خاصي نيست.

هنگامي كه user را مي سازي ، در صفحه ساختن login تيك گزينه 
"User Must change password at next login" 
را برداريد.

انشا ا... مشكلتان حل شود.

سوالي بود در خدمتم.

موفق باشيد.

----------


## slashslash2009

یه مشکل دیگه حالا به وجود اومد که خیلی جدی تر از قبلی هستش اونم این اروره که C#‎ میده :
SELECT permission denied on object 'master', database 'anbardari', schema 'dbo'.

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

con.ConnectionString = "data source=" + serv + "Initial catalog=anbardari;Integrated Security=false;User ID=alireza;Password=1234";



6- به قسمت securables (از عنوان هاي سمت چپ) برويد.
7- بر روي add كليك نماييد و گزينه مورد نظر را انتخاب كنيد.

راستی تو این قسمت مشکل دارم باید چیو add کنم فکر کنم مشکل از همین قسمته فکر کنم باید دسترسی های کاربر به فایلو یه جایی وارد کنم ولی نمیدونم کجا یه کارایی کردم ولی نتیجه ای نداشت

----------


## saied_genius

كاش متغير serv تان را هم مي نوشتيد دقيقاً چيست.

1- اگر سطح دسترسي را درست تعريف كرده باشيد (مثلاً با همين user و password) و بتوانيد به ديتابيس مورد نظر دسترسي داشته باشيد ، (از sql management studio) يعني ديتابيس مورد نظر را باز كند ، مشكل از connection string است.

2- شما نگفتيد چگونه مي خواهيد ديتابيس خود را متصل نماييد. آيا ديتابيس بر روي sqlserver است يا اينكه مي خواهيد آن را attach نماييد؟؟؟

3- با كمي دقت مي بينيد كه پس از data source و قرار دادن آن برابر متغير serv هيچ (;) وجود ندارد.(نمي دانم شايد درون serv قرار داده ايد. بعيد است نه !!!!!)

با اين راهنمايي ها دوباره امتحان كن اگر نشد اطلاعات خواسته شده را بده تا بتوانم بهتر راهنماييتان نمايم.

موفق باشيد.

----------


## slashslash2009

> 3- با كمي دقت مي بينيد كه پس از data source و قرار دادن آن برابر متغير serv هيچ (;) وجود ندارد.(نمي دانم شايد درون serv قرار داده ايد. بعيد است نه !!!!!)


; در خود متغیر serv ذخیره شده . من با این کانکشن استرینگ قبل از اینکه از user id,password استفاده کنم کار کردم وجواب میده البته Integrated Security=true بوده . واز این کانکشن استرینگ برای  درج و حذف ویرایش و جستجو استفاده می کنم . من فقط سطح دسترسی رو نمی دونم چه جوری تعریف کنم .این پیغامه خطارو هم زمانه select کردن بهم میده . تو فرم لودم یه دستور select هست واسه همینم اصلا فرمم باز نمیشه . conection stringهم تو یه کلاس تعریف کردم . در قسمت securables باید چیکار کرد من فقط کلید add رو میزنم بعدش یه فرم با 3تا گزینه میادکه من آخریشو میزنم که عنوانش اینه the server بعدش یه چیزایی اون پایین میاد که هر کدومش 3تا چک باکس داره اینجارو نمیدونم باید چیکار کنم

----------


## saied_genius

> در قسمت securables باید چیکار کرد من فقط کلید add رو میزنم بعدش یه فرم با 3تا گزینه میادکه من آخریشو میزنم که عنوانش اینه the server بعدش یه چیزایی اون پایین میاد که هر کدومش 3تا چک باکس داره اینجارو نمیدونم باید چیکار کنم


بايد متناسب با نيازتان تنظيم كنيد. اگر دقت كرده باشيد:




> 6- به قسمت securables (از عنوان هاي سمت چپ) برويد.
> 7- بر روي add كليك نماييد و گزينه مورد نظر را انتخاب كنيد.
> 8- بر روي گزينه آخر كه بگذاريد كاربر به تمامي اطلاعات آن سرور كه مربوط به آن ديتابيس است را دسترسي خواهد داشت.


پس از زدن كليد add بهترين حالت (قبلاً هم گفته ام) گزينه سوم را انتخاب كن كه نام سرور است و به شما اجازه دسترسي به سرور را مي دهد.

اميدوارم مشكلت حل شود.

سوالي بود در خدمتم.

موفق باشيد.

----------


## slashslash2009

> پس از زدن كليد add بهترين حالت (قبلاً هم گفته ام) گزينه سوم را انتخاب كن كه نام سرور است و به شما اجازه دسترسي به سرور را مي دهد.


این گزینه سوم کدومه اینجا 100تا گزینه هست . بعد از اینکه add کردم تو قسمت secrables اسم سرور میاد تو قسمت پایینش هم که explict permissions fro servername هست کلی انتخاب دیگه میاد که هر کدومش 3تا چک باکس داره . 3ومیش کدومش میشه . متشکرم

----------


## saied_genius

ببين دوست عزيز،

ما كاري با پنجره پايين نداريم.

پس از زدن دكمه add و باز شدن پنجره، گزينه سوم كه همان نام سرور است را انتخاب كن.

همين كافيست و كاري با پنجره پايين نداشته باش.

هنوز به اين صورت مشكلت حل نشده ؟؟

----------


## slashslash2009

تمام این کارهارو کردم . ولی مشکل از کانکشن استرینگم نیست چون موقعی که با یوزر sa و پاسورده خودش وارد میشم همه چیز به خوبی کار میکنه هیچ پیغام خطایی هم نمیده . ببخشید شمارم واقعا خسته کردم

----------


## saied_genius

نه ، اختيار داريد .

فكر كنم فهميدم مشكلتان از چيست ....

روي يوزر مورد نظر كليك راست و سپس properties 

1- در قسمت سمت چپ User Mapping را انتخاب نماييد و سپس (از قسمت سمت راست) ديتابيسي را كه مي خواهيد به آن دسترسي داشته باشيد را انتخاب نماييد. 

2- در قسمت پايين db_owner را نيز تيك بزنيد تا دسترسي كامل را به اين user بدهد.

اميدوارم كه مشكلتان حل شده باشد.

----------


## ab1234

از راهنمایی های خوبتون واقعا متشکرم
ولی من هر کاری می کنم لاگین نمیکنه
با sql و با برنامه خودم که به راحتی به DB سرور سایتم وصل میشم اما به DB خودم وصل نمیشه
sql این ارور رو میده




چندین بار این متنتون رو خط به خط خوندم و همه کار هارو انجام دادم
اگه ممکنه راهنمایی کنید
بازم ممنونم

----------


## saied_genius

ببينيد شما بايد :

1- حتماً پورت تعريف كرده باشيد (بر روي سرور) و از طريق آن پورت وصل شويد.

2- در firewall سرور بايد حتماً sqlserver را به exception ها اضافه كرده باشيد تا بتوانيد remote وصل شويد.

3- طبق پيغام شما ، user كه داريد استفاده مي كنيد بر روي server ساخته نشده است و يا اينكه دسترسي ها درست تنظيم نشده است، آنها را يك بار مرور نماييد و دوباره امتحان نماييد.

4- user mapping را چك نماييد و از صحت آن مطلع شويد.


اميدوارم كه مشكل حل شود.

اگر هنوز مشكل داشتيد ، بيشتر توضيح دهيد تا بتوان راحت تر مشكل را حل نمود.

----------


## amirashna

> ::::::براي فعال كردن remote براي sqlserver بر روي سرور::::: 
> 1- از قسمت windows firewall : سر برگ exception : دكمه add program : كليك كرده و sqlserver خود را اضافه نماييد.
> 
> 2- در sql server configuration manager : قسمت sql server 2005 network configuration : سپس protocols : سپس enabled را yes كنيد : سپس در سمت راست TCP/IP دو بار كليك كنيد : سربرگ IP Address قسمت TCP Dynamic Ports : شماره پورت جهت remote مورد نظر خود را وارد نماييد.
> 
> 3-در sql server surface area configuration : در قسمت service area configuration for services and connections : سپس قسمت database engine : در قسمت local and remote connections : گزينه using TCP/IP only را فعال نماييد.
> 
> موفق باشيد.


سلام
واقعا از شما تشکر می کنم
ولی من تو همو خط اولش موندم!!!

توی این قسمت SQL Server  ندارم که Allow کنم.
حداقل چیزی با این نام ندارم!

شاید اسمش چیزه دیگست
من ویندوز 7 دارم و SQL Server 2005 Expres

لطفا بنده رو هم راهنمایی کنید

----------


## saied_genius

> سلام
> واقعا از شما تشکر می کنم
> ولی من تو همو خط اولش موندم!!!
> 
> توی این قسمت SQL Server  ندارم که Allow کنم.
> حداقل چیزی با این نام ندارم!
> 
> شاید اسمش چیزه دیگست
> من ویندوز 7 دارم و SQL Server 2005 Expres
> ...


سلام

دقیقاً کدام قسمتش را منظورتان است.

البته حق با شماست ، من باید بیشتر توضیح می دادم.

مورد 1- مربوط به firewall ویندوز می شود.

مورد 2- مربوط به تنظیمات Sql Server است که در Start در قسمت All programs قسمت مربوط به sql server می توانید آنها را مشاهده کنید.

مورد 3- هم مانند مورد 2 است.

باز هم سوالی بود در خدمتم.

موفق باشید.

----------

