PDA

View Full Version : گفتگو: آیا ساخت بانک اطلاعاتی با داده های خیلی مهم با سی شارپ معقولانه است؟



complexcoding
شنبه 14 مرداد 1391, 02:38 صبح
دوستان سلام
اگر نرم افزار بانک اطلاعاتی که داده های درون اون فوق العاده سری هستند درست هست که با سی شارپ درست بشن؟ یعنی معقولانه هست؟ پیشنهاد شما چیه؟
خیلی ممنون

لطفا همه نظر بدن!
با تشکر فراوان

fjm11100
شنبه 14 مرداد 1391, 09:31 صبح
چرا معقولانه نباشه؟ البته این بیشتر به امنیت خود بانک اطلاعاتی بستگی دارد واگرنه c# کاری در این رابطه نمیکنه

barnamenevisforme
شنبه 14 مرداد 1391, 09:54 صبح
سلام
همون طور که دوستمون گفتن مهمتر از اون رعایت امنیت بانک اطلاعاتیه که فکر کنم اگه filedهای مهم رو incrypt (از امکانات بانک های sql )کنید این مشکل حل میشه.
از طرف دیگه هم برنامه هایی مثل c# که تحت .net نوشته میشن اگه obfoscate(از امکانات visyual studio) بشه برای جلوگیری از decompile و disassemble مشکلی بوجود نمیاد انشالله.

saeedhushmand
شنبه 14 مرداد 1391, 10:13 صبح
دوستان حالا که دوستمون این سوال پرسید من هم می خواستم بدونم آیا امکان داره هنگام insert کردن یا update کردن اطلاعات در sql این اعمال به درستی انجام نشه...
یا اصلا (0%) هم چین چیزی امکان نداره اگر هم امکان داره ،به چه دلیل می تونه باشه
1- شیوه بد کد نویسی #C
2-استفاده از کد ADO.NET نا مناسب
3- سخت افزار کامپیوتر کاربر
و آیا لایه ای بودن یا نبودن برنامه تاثیر داره توی select ، insert ، delete ، update ...

barnamenevisforme
شنبه 14 مرداد 1391, 10:22 صبح
سلام
بله این امکان وجود داره.
فرض کنید نرم افزار تحت شبکه در حال استفادست ،همرمان دو کاربر یه record رو انتخاب و شروع به ویرایش میکنند.
هر کی زودتر update رو بزنه،عمل اون با موفقیت ثبت میشه،واسه نفر دوم خطا ایجاد میشه و ممکنه مقداری از تغییراتش اعمال بشه و بعد این اتفاق بیفته.
برای بازگردانی همچین خرابکاری معمولا از transaction استفاده میکنند.
در حالات دیگه ای هم ممکنه این اتفاق بیفته،و اون هم احتمال خیلی کمی داره،قطع اتصال شبکه.

saeedhushmand
شنبه 14 مرداد 1391, 10:24 صبح
ممنون از راهنماییت در حالت تک کاربره چی
آیا امکان داره...

barnamenevisforme
شنبه 14 مرداد 1391, 10:44 صبح
در حالت تک کاربره چی
آیا امکان داره...
اینو باهاش برخورد نکردم تا حالا.
اگه فرض کنیم حجم اطلاعاتی که در حال ثبته به مقدار قابل ملاحظه ای سنگین باشه،و در حین اجرای دستور توسط sql server به طور ناگهانی واسه سیستم مشکلی پیش بیاد مثلا برق سیستم قطع بشه چه اتفاقی میفته؟
فقط اینو میدونم که توی نسخه 2000 ممکنه دیگه service اون run نشه :لبخند:و مجبور بشی دوباره sql server رو نصب کنی:عصبانی++:.که امیدوارم این نقص توی نسخه های جدید برطرف شده باشه.اما چی به سر اطلاعات میاد؟این یکم تخصصیه.:متفکر:

samadblaj
شنبه 14 مرداد 1391, 12:04 عصر
هر کی زودتر update رو بزنه،عمل اون با موفقیت ثبت میشه،واسه نفر دوم خطا ایجاد میشه و ممکنه مقداری از تغییراتش اعمال بشه و بعد این اتفاق بیفته.

خوب کسی اول update رو بزنه اطلاعات رو ثبت میکنه و نفردوم هم بزنه ثبت میشه یعنی این عمل جواب خواهد داد؟




فقط اینو میدونم که توی نسخه 2000 ممکنه دیگه service اون run نشه :لبخند:و مجبور بشی دوباره sql server رو نصب کنی:عصبانی++:.که امیدوارم این نقص توی نسخه های جدید برطرف شده باشه.اما چی به سر اطلاعات میاد؟این یکم تخصصیه.:متفکر:


یعنی این مشکل توی نسخه بالاتر درست نشده؟ صد در صد شده ! VS که بسته شه Recovery میشه... اونم رفع شده تا حالا

خوب یک بار امتحان کنید.

ehsan7007
شنبه 14 مرداد 1391, 15:28 عصر
سلام دوستان.
در کل از نظر من مهمترین اصول امنیتی و حتی نقاط ضعف به خود برنامه نویس بستگی داره. علاوه بر انتخاب شیوه کدنویسی ، روش ها و ابزارهای مورد استفاده و...
برنامه نویس باید به فکر همه جای کارش باشه و احتمالات رو بررسی و به جهت جلوگیری حل کنه ، که تا جایی که ممکنه درصد پیش امد ها رو پایین بیاره ،
اما در هر صورت پیش امده دیگه...!! :خجالت: چیکارش میشه کرد؟؟!!!

barnamenevisforme
شنبه 14 مرداد 1391, 18:21 عصر
سلام

خوب کسی اول update رو بزنه اطلاعات رو ثبت میکنه و نفردوم هم بزنه ثبت میشه یعنی این عمل جواب خواهد داد؟
اخه وقتی هر دو نفر در مرحله اول شروع به ویرایش یه recrod میکنند،مثل این میمونه که یه نسخه از record حال حاضر در اختیارشون قرار میگیره،حالا اولی که update میکنه،تغییرات نسبت به نسخه اولیه مقایسه و اعمال میشه.ولی وقتی دومی عمل update رو میخواد انجام بده دیگه نسخه اولیه تغییر کرده. در نتیجه توی عمل مقایسه اشکال بوجود میاد.میتونید امتحان کنید.از یه برنامه روی سیستم خودتون دو تا instance اجرا کنید. همزمان شروع به ویرایش یه record کنید.ببینید چه اتفاقی میفته.

خوب یک بار امتحان کنید. موضوع start نشدن sql server 2000 در همه حالت ها اتفاق نمیفته ،یعنی نمیشه با یه بار به وجود آوردن شرایطی که گفتم حتما انتظار داشت که این اتفاق میفته.
حالا ممکنه این اتفاق واسه نسخه های بالاتر هم بیفته(اگه ایراد برطرف نشده باشه) ولی با امتحان نمیشه جواب صد در صد رو گرفت.