PDA

View Full Version : بهترین راه اتصال به sqlserver از طریق اینترنت



SEPIDEYESHAB
شنبه 23 بهمن 1395, 22:03 عصر
با سلام خدمت همه اساتید.

بنده یه نرم افزار برای یک شرکت نوشتم که اولش تک سیستم بود اما بعدا بر حسب نیاز چند تا سیستم نیاز بود که من تو شبکه محلی به خود sqlserver وصل میشدم و کارم راه افتاده بود
اما الان ارگان بالا سری این شرکت ما ، شرکت رو ملزم کرده تا به اطلاعات ما دسترسی داشته باشه.
حالا من باید یه جوری این اطلاعات رو در اختیار اونا قرار بدم.
چندتا راه به ذهنم میرسه از قبیل :
1- خود دیتابیس رو شیر کنم
2- با استفاده از سوکت در اینترنت به برنامه اصلی وصل بشم
3- استفاده از برنامه هایی مثل hamachi

اما از اونجا که این اطلاعات محرمانه است ، امنیتش برام مهم هستش. اساتید به نظرتون از چه راهی استفاده کنم تا بیشترین امنیت رو داشته باشه و نیاز به تغییرات اساسی در برنامه نداشته باشه. مثلا احتیاج نباشه برنامه رو تحت وب درست کنم:لبخند:

البته هیچ کدوم از این سه تا راهی که گفتم رو هم بلد نیستم پیاده سازی کنم ، فقط در حد شنیده بوده...
لطفا راهنمایی کنید:بوس:

hamid_hr
یک شنبه 24 بهمن 1395, 11:36 صبح
بنظر من بهترین راه استفاده از یک وب سرویس هست
یک وب سرویس درست کن و ازش استفاده کن
میتونی اطلاعات رد بدل شده رو رمزنگاری و رمزگذاری کرد

SEPIDEYESHAB
یک شنبه 24 بهمن 1395, 11:53 صبح
میشه بیشتر توضیح بدین ؟

چجوری sql رو که تو سیستم سرور هست رو به وب سرویس متصل کنم ؟

SEPIDEYESHAB
یک شنبه 24 بهمن 1395, 11:58 صبح
این توضیح هم بدم که من با ado کار کردم و فقط از دو تا تابع select و save برای ارتباط با بانک استفاده کردم.
همه کار ارتباط با بانک رو همین دو تابع انجام میده.
یه نکته دیگه اینکه من تو دیتابیسم عکس هم ذخیره کردم.

نمیشه از طریق سوکت اطلاعات رو به صورت یه فایل xml یا json ارسال کرد ؟

hamid_hr
یک شنبه 24 بهمن 1395, 12:26 عصر
شما میتونی همین دو تا تابع رو در وب سرویس پیاده سازی کنی و با کمترین تغییرات توی نرم افزارت ازش استفاده کنید
https://www.codeproject.com/Articles/428200/How-to-invoke-a-Web-Service-from-a-Stored-Procedur
این یک نمونه از ساخت و استفاده از وب سرویس هست.
البته اگه از wcf استفاده کنی خیلی بهتره که باید یکم آموزش هاش رو بگیری و دنبال کنی

SEPIDEYESHAB
یک شنبه 24 بهمن 1395, 13:23 عصر
شما میتونی همین دو تا تابع رو در وب سرویس پیاده سازی کنی و با کمترین تغییرات توی نرم افزارت ازش استفاده کنید
https://www.codeproject.com/Articles/428200/How-to-invoke-a-Web-Service-from-a-Stored-Procedur
این یک نمونه از ساخت و استفاده از وب سرویس هست.
البته اگه از wcf استفاده کنی خیلی بهتره که باید یکم آموزش هاش رو بگیری و دنبال کنی

این آموزشه یه پروژه asp ساخته ...
بعدش هم انگار پروژه رو آپلود کرده روی هاست...
من میخوام application base کار کنم...
بعدش هم فک کنم stored procedur گزارش های ثابتی بر میگردونه که از قبل ساخته شده ، در صورتی که تو برنامه ی من شاید صدها فیلد باشه و تمامی گزارش ها هم به صورت پویا ساخته میشه.
به همین دلیل هم از ado استفاده کردم تا query ها در زمان اجرا ساخته بشه...:افسرده:

ms-ninja
یک شنبه 24 بهمن 1395, 14:21 عصر
من 2 راه به نظرم میرسه

1 -یک VPS بگیرید و SQL از اونجا قرار بدید

2 - خودتون یک سرور راه بندازید

من هر دو روش انجام دادم البته

SEPIDEYESHAB
یک شنبه 24 بهمن 1395, 18:24 عصر
من 2 راه به نظرم میرسه

1 -یک VPS بگیرید و SQL از اونجا قرار بدید

2 - خودتون یک سرور راه بندازید

من هر دو روش انجام دادم البته
در این حالت ها باید دیتابیس رو ببرم روی اینترنت ؟
میشه یکم راجع به هرکدوم توضیح بدید ؟

vpn چی ؟ با وی پی ان نمیشه شبکه خصوصی درست کرد ؟

ms-ninja
یک شنبه 24 بهمن 1395, 23:44 عصر
شما موضوع تاپیکتون این بود که اتصال SQL از طریق اینترنت

من خودم برای یک شرکت یک کیس مینی گرفتم + IP valid و در خود همون شرکت راه اندازی کردم

روی VPS هم به همین شکله . با چیز پی ان تا حالا تست نکردم . کار خودم هم بیشتر شبکه هست

SEPIDEYESHAB
دوشنبه 25 بهمن 1395, 12:03 عصر
شما موضوع تاپیکتون این بود که اتصال SQL از طریق اینترنت

من خودم برای یک شرکت یک کیس مینی گرفتم + IP valid و در خود همون شرکت راه اندازی کردم

روی VPS هم به همین شکله . با چیز پی ان تا حالا تست نکردم . کار خودم هم بیشتر شبکه هست

بابت موضوع شرمنده ، چیز بهتری به ذهنم نرسید ولی توی توضیحات گفتم میخوام چکار کنم:لبخند:

اگه ip valid بگیرم چجوری میتونم sql server رو کانفیگ کنم که از طریق اینترنت بهش وصل بشیم؟؟؟
با یه چیزی مثل socket programming نمیشه از طریق اینترنت به برنام سرور متصل شد و اطلاعات رو از برنامه گرفت؟
یعنی مستقیم به دیتابیس وصل نشیم ؟

hamid_hr
دوشنبه 25 بهمن 1395, 12:07 عصر
با یه چیزی مثل socket programming نمیشه از طریق اینترنت به برنام سرور متصل شد و اطلاعات رو از برنامه گرفت؟
یعنی مستقیم به دیتابیس وصل نشیم ؟

خب راحتتر از socket همین وب سرویس هست که شما روی سرور ران میکنی و به درخواست ها پاسخ میده

SEPIDEYESHAB
دوشنبه 25 بهمن 1395, 13:00 عصر
خب راحتتر از socket همین وب سرویس هست که شما روی سرور ران میکنی و به درخواست ها پاسخ میده
این که خیلی خوبه ولی من هیچی از وب سرویس بلد نیستم :افسرده:
اگه میشه یه راهنمایی بفرمایید که از کجا شروع کنم ، چه پیشنیاز هایی میخوادو...
اگه سمپل هم بدبد خیلی خوب میشه :خجالت:

hamid_hr
دوشنبه 25 بهمن 1395, 13:07 عصر
از اینجا شروع کن
http://barnamenevis.org/forumdisplay.php?143-WCF-Web-Services-Net-Remoting

نمونه هم زیاد هست
https://www.codeproject.com/Articles/863/Your-first-C-Web-Service
و یک مثال خیلی ساده
https://support.microsoft.com/en-us/help/308359/how-to-write-a-simple-web-service-by-using-visual-c-.net

وقتی وب سرویس رو ساختی و راه اندازیش کردی توی پروژه کلاینت اضافه میکنیش
http://www.c-sharpcorner.com/UploadFile/718fc8/consuming-web-service-in-console-application/
بعد به راحتی از توابعش استفاده میکنی

اینم نمونه خوبیه
http://www.c-sharpcorner.com/UploadFile/a20beb/how-to-access-a-web-service-in-console-application/

ms-ninja
دوشنبه 25 بهمن 1395, 14:53 عصر
خیلی راحته . همه چیز بستگی به کانفیگ مودم + فایروال داره . نیاز به دستکاری SQL server نیست

SEPIDEYESHAB
دوشنبه 25 بهمن 1395, 22:24 عصر
از اینجا شروع کن
http://barnamenevis.org/forumdisplay.php?143-WCF-Web-Services-Net-Remoting

نمونه هم زیاد هست
https://www.codeproject.com/Articles/863/Your-first-C-Web-Service
و یک مثال خیلی ساده
https://support.microsoft.com/en-us/help/308359/how-to-write-a-simple-web-service-by-using-visual-c-.net

وقتی وب سرویس رو ساختی و راه اندازیش کردی توی پروژه کلاینت اضافه میکنیش
http://www.c-sharpcorner.com/UploadFile/718fc8/consuming-web-service-in-console-application/
بعد به راحتی از توابعش استفاده میکنی

اینم نمونه خوبیه
http://www.c-sharpcorner.com/UploadFile/a20beb/how-to-access-a-web-service-in-console-application/

برای استفاده از وب سرویس احتیاج به هاست و دامین که نیست ؟

میشه به صورت مفهومی بگید وب سرویس دقیقا چکار میکنه و چجوری اطلاعات رو از کامپیوتر سرور من به کلاینت ها از طریق اینترنت میرسونه ؟؟:خجالت:

hamid_hr
سه شنبه 26 بهمن 1395, 09:18 صبح
وب سرویس چیست
http://www.parsdata.com/articles/what-is-web-service
https://fa.wikipedia.org/wiki/%D9%88%D8%A8%E2%80%8C%D8%B3%D8%B1%D9%88%DB%8C%D8%B 3

یک آموزش تو سایت برنامه نویس
http://barnamenevis.org/showthread.php?47079-%D9%88%D8%A8-%D8%B3%D8%B1%D9%88%DB%8C%D8%B3-Web-service-%D8%A7%D8%B2-%D8%A2%D8%BA%D8%A7%D8%B2-%D8%AA%D8%A7-%D9%BE%D8%A7%DB%8C%D8%A7%D9%86