PDA

View Full Version : و ارتباط به صورت ری موتsql engin



dr.pantagon
یک شنبه 04 اسفند 1387, 19:21 عصر
سلام
من برنامه خودم رو نوشتم و لوکال به صورت کامل جواب می ده و هیچ مشکلی نداره

حالا مشکل من این است که برنامه من دو نسخه است سرور و کلاینت
سرور که هیچی راحت به دیتابیس وصل می شه ولی کلاینت وصل نمی شه و هی ارور میده که اس کیو ال سرور در دسترس نیست

هر نوع کانکشنی بگین تست کردم و جواب نداد

من رفتم روی اون سیستمی که قرار بود کلاینت نصب بشه
نسخه کلاینت اس کیو ال رو نصب کردم و باز هم کانکت نشد تا وقتی که
تو قسمت سرور که به صورت پیش فرض اسم کامپیوتر ست شده بود ایپی سرور رو زدم
بعد لوگین شد


من حتما باید نسخه کلاینت رو نصب کنم ؟
نمی شه کاری کرد که ایپی رو اتوماتیک بگیره
اسم برنامه کلاینت است یعنی کاربر رو باید در سطح فهم صفر فرض کرد نمیشه گفت که بیاد آیپی ست کنه !!!

به نظر شما باید چه کاری انجام داد

saied_genius
دوشنبه 05 اسفند 1387, 16:25 عصر
شما نياز به نصب sql server بر روي client نداريد.

راه حل:


::::::براي فعال كردن remote براي sqlserver بر روي سرور:::::

::اين عمليات بر روي سرور انجام شود::
1- ابتدا firewall سيستم سرور را تنظيم كنيد كه بتواند remote connection را دريافت نمايد.
(با غير فعال كردن firewall زمين تا آسمان متفاوت است.)
: در firewall در قسمت exceptions بر روي add program كليك نماييد و فايل sqlserver را اضافه نماييد. (فايل sqlservr.exe)

2- تشخيص نام sqlserver:
: در پنجره Sql Server Configuration Manager در پنجره سمت چپ بر روي Sql sever 2005 Services كليك كرده و در سمت راست سرويس هاي موجود را مشاهده نماييد.

::نكته::
اگر براي sqlserver خود زمان نصب sqlserver نام (instant) تعريف كرده باشيد در همين جا مشخص مي شود.
يكي از سرويس ها با نام SQL Server است. اگر شما براي آن زمان نصب instant تعريف كرده باشيد نام instant شما داخل پرانتز مي آيد.

مثال:
SQL Server (Myserver)

::توجه::
اگر SQLServer شما express باشد به عنوان instant نصب مي شود و نام SQLEXPRESS داخل پرانتز مي آيد.

3- براي sqlserver خود پورت جهت دريافت remote connection تعريف كنيد.
: در پنجره Sql Server Configuration Manager در سمت چپ بر روي از شاخه SQL Server 2005 Network Configuration بر روي نام سرور خود كليك نماييد (طبق آنچه در شماره 2 گفته شد نام sqlserver خود را تشخيص دهيد.)

مثال:
Protocols for SQLEXPRESS

سپس در پنجره سمت راست بر روي TCP/IP دوبار كليك نماييد تا پنجره مربوطه باز گردد.

در پنجره باز شده در صورتي كه گزينه Enabled برابر No است آن را برابر Yes قرار دهيد.

سپس در همان پنجره به Tab (سربرگ) IP Address برويد و در فيلد يكي مانده به آخر (TCP Dynamic Ports) پورت مورد نظر خود را جهت remote connection تعريف نماييد.

::مهم::
1433 پورت پيش فرض sqlserver است، در صورتي كه مي خواهيد از حالت remote استفاده نماييد حتماً (از لحاظ امنيتي) آنرا تغيير دهيد.

بر روي Apply و سپس Ok كليك نماييد.

**يك پيغام به شما مي دهد دال بر اين كه جهت استفاده از تغييرات بايد سرويس مورد نظر شما يك بار restart شود و شما بر روي Ok كليك نماييد.

4- به شاخه SQL Server 2005 Services در پنجره سمت چپ باز گرديد و از پنجره سمت راست sql server خود را كه قبلاً (طبق توضيحات شماره 2) شناختيد انتخاب و سپس بر روي آن راست كليك كرده و Restart را انتخاب نماييد و پنجره را به طور كلي ببنديد.

5- Connection String:
:در صورتي مي توان به سرور وصل شد كه در سمت سرور، 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_Connecti on=False;



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


::اين عمليات بر روي سرور انجام شود::
شايد ساختن 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- در صورتي كه مي خواهيد دسترسي محدودتري داشته باشد از گزينه هاي ديگر استفاده كنيد (كه خود بحث مفصلي دارد http://www.barnamenevis.org/forum/images/icons/icon9.gif).
10- در قسمت status (در سمت چپ) گزينه grant و Enable را (از سمت راست) انتخاب نماييد.
سپس بر روي ok كليك نماييد.

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

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

مراحل را انجام دهيد. اگر سوالي بود در خدمتم.

موفق باشيد.