# Native Code > برنامه نویسی در Delphi > توسعه نرم افزار تحت وب >  وصل شدن به دیتابیس هاست از طریق اینترنت

## sara_t

سلام دوستان
من یه هاست دارم که یه دیتابیس براش تعریف کردم.
میخام یه نرم افزار بنویسم که بتونه به دیتابیسم توی هاست وصل بشه و اطلاعات رو توی اون بریزه. اما این نرم افزار روی هاست نباشه . 
نمیدونم تونستم مفهوم رو برسونم یا نه.
با توجه به اینکه من از هاست یه ip خاص دارم و میتونم به اون ای پی وصل بشم.
ممنون میشم راهنمایی کنید.

----------


## mrm0101

سلام . شما می توانید یک برنامه تحت ویندوز بنویسید که از طریق اینترنت به دیتیابیس روی سرور وصل بشود. لازمه این کار یک ip valid که روی هاست ها فعال است و دوم پورت 1433 که پیش فرض اس کیو ال سرور است باید باز باشد . 
فقط کافی است با ado connection  به اس  کیو ال سرور وصل بشید . بجای نام سرور آی پی سرور راه دور و نام کاربری و کلمه عبور که مسئول هاست در اختیارتان می گذارد وارد کنید .

----------


## بهروز عباسی

درود منم می خوام همین کارو با MYSQL بکنم کسی می دونه چطوری (در این زمینه زیادی مبتدی ام)
روی لوکال راحت برنامه کار میکنه اما برای وصل شدن به سایت مشکل دارم من از DBExpress استفاده می کنم

----------


## sara_t

از روشی که دوستمون فرمودن استفاده کنید.

----------


## pepour

پنلتون directadmin هست یا cpanel ؟

----------


## BORHAN TEC

دوستان عزیز، در این مورد استفاده از روشهایی که عرض کردید از لحاظ امنیتی بسیار خطرناک هستند، زیرا برای کانکت شدن به دیتابیس باید User و Pass رو در برنامه کلاینت ذخیره کنید و با استفاده از آنها به پایگاه داده متصل شوید که این کار می تواند موجب لو رفتن این اطلاعات و خرابکاری توسط کراکرها شود، برای رفع این مشکل شما باید از معماری n-Tier استفاده کنید که قبلاً در این رابطه توضیحات کاملی را عرض کرده ام.

----------


## N30TheM4TRIX

> دوستان عزیز، در این مورد استفاده از روشهایی که عرض کردید از لحاظ امنیتی بسیار خطرناک هستند، زیرا برای کانکت شدن به دیتابیس باید User و Pass رو در برنامه کلاینت ذخیره کنید و با استفاده از آنها به پایگاه داده متصل شوید که این کار می تواند موجب لو رفتن این اطلاعات و خرابکاری توسط کراکرها شود، برای رفع این مشکل شما باید از معماری n-Tier استفاده کنید که قبلاً در این رابطه توضیحات کاملی را عرض کرده ام.


 سلام
اگه از "معماری n-Tier" استفاده کنیم برای اجرای برنامه باید به سرور سایت دسترسی داشته باشیم؟

----------


## BORHAN TEC

> سلام
> اگه از "معماری n-Tier" استفاده کنیم برای اجرای برنامه باید به سرور سایت دسترسی داشته باشیم؟


منظورتون رو دقیقاً متوجه نمی شوم ولی در حالت کلی باید یک وب سرویس بسازید که بر روی هاست قرار بگیرد و باید برنامه شما از آن وب سرویس استفاده کند.

----------


## N30TheM4TRIX

سلام



> منظورتون رو دقیقاً متوجه نمی شوم


متوجه شدید!




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


منظور من همین بود که من قادر به اجرای وب سرویس روی هاستم نیستم یعنی اجازه این کارو ندارم من فقط یک هاست خریدم و به سرور دسترسی ندارم.
و امنیت هم زیاد مهم نیست؟
بااین تفاصیر میشه کاری کرد؟

----------


## BORHAN TEC

> قادر به اجرای وب سرویس روی هاستم نیستم یعنی اجازه این کارو ندارم


چرا اجازه این کار رو ندارید؟ اگر اجزاه اجرای ISAPI DLL رو ندارید میتونید از دات نت استفاده کنید.من قبلاً فیلمی را در این زمینه در تاپیک زیر قرار داده بودن که متاسفانه از سرور حذف شد. با پرس و جو در بین اشخاصی که این فیلم را دانلود کرده بودند فکر می کنم که بتوانید به آن ویدئو دست یابید.

این هم آدرس تاپیک:
https://barnamenevis.org/showthread.php?327108



> و امنیت هم زیاد مهم نیست؟


اگر امنیت مهم نیست، می توانید از همان روش سنتی استفاده کنید!

----------


## N30TheM4TRIX

> چرا اجازه این کار رو ندارید؟ اگر اجزاه اجرای ISAPI DLL رو ندارید میتونید  از دات نت استفاده کنید.من قبلاً فیلمی را در این زمینه در تاپیک زیر قرار  داده بودن که متاسفانه از سرور حذف شد. با پرس و جو در بین اشخاصی که این  فیلم را دانلود کرده بودند فکر می کنم که بتوانید به آن ویدئو دست یابید.


کارم کمی عجله ای وقت ندارم اگه ممکنه بزرگواری کن کمی توضیح بده باید چکارکنم و چی لازم دارم (سرنخ رو بده دستم)
ممنون

----------


## N30TheM4TRIX

> چرا اجازه این کار رو ندارید؟ اگر اجزاه اجرای ISAPI DLL رو ندارید میتونید   از دات نت استفاده کنید.من قبلاً فیلمی را در این زمینه در تاپیک زیر  قرار  داده بودن که متاسفانه از سرور حذف شد. با پرس و جو در بین اشخاصی که  این  فیلم را دانلود کرده بودند فکر می کنم که بتوانید به آن ویدئو دست  یابید.


کمی توی سایت گشتم ظاهراً حتما باید سرور IIS باشه و روی سرورهای لینوکس جواب نمیده!
اما سرور من لینوکس هستش باید چکار کنم؟
باید یک سرور ویندوزی بگیرم؟

----------


## BORHAN TEC

سلام
بنا به درخواست یکی از دوستان با این که تاپیک کمی قدیمی هست به آن جواب می دهم.
اگر می خواهید مستقیماً به پایگاه داده موجود در یک هاست دسترسی پیدا کنید باید ببینید که هاست مربوطه این قابلیت را در اختیار شما قرار می دهد یا خیر. مثلاً در برخی از موارد پورت مربوط به MySql را طوری تنظیم می کنند که بنا به مسائل امنیتی نتوانید از خارج از همان حوزه به آن دسترسی پیدا کنید. در این حالت باید این موضوع را از شرکت ارائه دهنده جویا شوید. در صورتی که به اطلاعاتی بیشتری در این خصوص نیاز دارید به لینک زیر مراجعه کنید:
http://stackoverflow.com/questions/2...hosting-server
توجه داشته باشید که من به هیچ عنوان استفاده از روش قبل را توصیه نمی کنم. بهتر است که مثلاً با PHP یک وب سرویس بنویسید که واسطی بین برنامه دسکتاپ و پایگاه داده موجود در هاست باشد. این روش از بسیاری از جهات به روش اول ترجیح داده می شود.
موفق باشید...

----------


## mrm0101

سلام 
راههای ارتباط با دیتابیس در سرور راه دور از طریق اینترنت 
1- ارتباط مستقیم با اس کیو ال سرور از طریق آی پی سرور ( خیلی جاها اجازه نمی دهند)
2- نوشتن یه برنامه واسطه بین دیتابیس و نرم افزار اصلی . برننامه نویسی چند لایه datasnap
3- نوشتن یه برنامه تحت وب که روی سرور اجرا شود و از طریق مرور گر فراخوانی شود . اینتراوب یا asp.net یا php

----------


## BORHAN TEC

سلام
کاملاً درسته ولی یکسری اشکالات به نوشته شما وارده:

- DataSnap در حالت کلی برای ایجاد برنامه های Multi-Tier به کار میره و بهتره که نگیم Multi-Layer . در برنامه های چند لایه، تقسیم بندی لایه ها به شکل منطقی هست. مثلاً ممکنه که نتیجه یک برنامه چند لایه فقط و فقط یک فایل EXE باشد. ولی در برنامه های چند ردیفه یا Multi-Tier تقسیم بندی این قسمت ها به شکل فیزیکی است. مثلاً ممکنه که قسمتی از یک برنامه چند ردیفه در یک سیستم و قسمت دیگری از آن روی سیستم دیگری اجرا شود.

- مورد سوم شما کاملاً درست است ولی کامل نیست. ممکن است که قسمتی از برنامه Multi-Tier با یک زبان برنامه نویسی دیگر ایجاد شود. مثلاً PHP. اصلاً لزومی ندارد که بخواهیم از طریق مرورگر به آن دسترسی داشته باشیم. می توانید یک وب سرویس با PHP و یا ASP.Net و ... ایجاد کنید و برنامه شما مستقیماً به آن دسترسی پیدا کند. مدتی قبل من یک ویدئوی فارسی در این رابطه ساخته بودم که این کار را در آن آموزش دادم. البته من در آنجا از ASP.Net برای ساخت وب سرویس استفاده کردم ولی با کمی جستجو می توانید این کار را با PHP هم انجام دهید. این ویدئو در آدرس زیر قرار دارد:
http://www.irstu.com/?p=3461

موفق باشید...

----------


## gholami146

سلام دوست من مشکل شما به صورت زیر حل می شود
اولا که Sql مربوط به ویندوز است و Mysql مربوط به لینوکس 
دوما شما باید اجازه ریموت لاگین به سرور رو داشته باشید نه لوکال لاگین
و سوما از کامپوننت UNIDOC استفاده کنید بسیار راحت هست و مشکل شما را مرتفع میکند
من قبلا یک برنامه واسه یک شرکت با هیمن سیستم ذکر شده نوشتم و هنوز هم داره بخوبی جواب میده
اگر نیاز به راهنمایی بیشتر داشتید در خدمتم
میتونید با پیام خصوصی با من در ارتباط باشید

----------


## mahdavi.2001

سلام . من خودم توی این شرکت کار میکردم . این برنامه کارایی مناسبی نداشت و اصلا درست کار نمیکرد. به نظر من میشه روی حرف کسی اعتماد کرد که متخصص باشه . به هرحال Sql که مربوط به ویندوز است می بایست توسط یه متخصص به اجرا گذاشته بشود. این مسائل به امنیت بیشتری هم بستگی دارد و نمیشود به کار هر کسی اعتماد کرد.
موفق باشید
"مهدوی یکی از مدیران شرکت"

----------

