مشاهده نسخه کامل
: امنیت دیتابیس
shadmehrshadow1
20-10-2013, 11:27
سلام
من توی برنامه از دیتابیس SQL استفاده می کنم. و اون دیتا بیس رو توی ویژوآل استودیو اتچ می کنم.اما در این حالت دیتا بیس
کاملا در اختیار افرادی دیگری که از برنامه استفاده می کنند قرار میگیره و به راحتی میشه اون دیتابیس رو کپی کنند و در SQL
Server Management Studio به راحتی اتچ کرده و هم به اطلاعات دیتابیس و ساختارش دسترسی پیدا کنند و هم اطلاعاتش
رو کم و یا زیاد کنند.
در این حالت امنیت برنامه کاملا زیر سوال میره.
میخواستم ببینم چه طور میشه کاری کنم که دیگه این اتفاق نیفته و یا بهتر بگم بشه برای برنامه رمز عبور قرار داد.
و اینکه چه طور میشه بدون اتچ کردن دیتا بیس توی برنامه اون رو به برنامه متصل کنم. درواقع کانکشن استرینگش باید چه
جوری باشه؟
یه مورد دیگه هم هست که میخواستم از توی برنامه دیتابیس رو بسازم. مثلا یه دیتابیس نمونه دارم میخوام مثل اون رو
بسازم.
برای مثال دیتابیس رو به شکل سال بسازم.مثلا برای سال 1392 یه دیتابیس داشته باشم و برای سال 1393 یک دیتابیس
دیگه.
امیدوارم که تونسته باشم منظورم رو برسونم.
ممنون
saeidehsadat
20-10-2013, 12:11
سلام
شما باید در محیط خود sql بانک را ایجاد کنید. در این صورت کانکشن شما به صورت زیر خواهد شد
Data Source={server name};Initial Catalog={database name};Integrated Security=False;User ID={user};Password={pass}
نام سرور چیزی است که به هنگام ورود به بانک باید وارد نمایید که می توانید localhost هم بنویسید.
برای اینکه با کد ، بانک ایجاد نمایید باید از دستورات sql استفاده نمایید create database و در صورت نیاز محل ذخیره سازی فایل
CREATE DATABASE database_name
این مسئلهی سال و اینا رو قبلا بحث شده در خصوصش، پیشنهاد نمیشه! :)...
اما در صورتی که مصرید بر اجرا، میتونین از اسکریپت ها استفاده بکنین...
شما وقتی دیتابیس رو میسازی، در اخر خودش رو که نمی بری این سیستم اون سیستم! یه فایل اسکریپت ساختش رو میذاری توی فایل نصب برنامه...
همراه با نصب شدن، اون اسکریپت رو هم اجرا میکنه و دیتابیس رو میسازه...
حالا؟، میتونی با اسکریپتها هم اتچ کنی و هم دیتچ و هم هر کاری!...
یه سری اسکریپت مینویسی که وقتی عدد سال عوض شد یا به هر صورتی که میخواد عمل بکنه! اسکریپتهای دیتچ و ساخت مجدد دیتابیس و وارد کردن یه سری اطلاعات اولیه رو انجام بده و بره پی کارش...
در خصوص امنیت هم میتونی برای دیتابیس(دسترسی بهش) توی خود منیجمنت سرور یوزر پسورد درست بکنی و دسترسی های بهش رو محدود بکنی به نرمافزارت و اون یوزر بخصوص و از این حرفا خلاصه... راه زیاده! :)
shadmehrshadow1
20-10-2013, 19:35
با تشکر از راهنمایی های دوستان
یه سری اسکریپت مینویسی
راستش من یک سری اطلاعات رو توی دیتابیس به صورت پیش فرض دارم که میخوام توش باشه. با ایجاد دیتابیس به روش اسکریپت میشه این اطلاعات رو درون دیتابیس داشت؟
شما باید در محیط خود sql بانک را ایجاد کنید. در این صورت کانکشن شما به صورت زیر خواهد شد
اما در مورد ایجاد دیتابیس .مثلا در صورت ایجاد در local . در این صورت برای نصب برنامه در یک سیستم دیگر نیاز به نصب نسخه ای از اس کیو ال و یا چیز دیگری هست؟؟ برای مثال باید برای سیستم مقابل sql manager نصب کنیم و سپس دیتابیس رو درون local او سیستم قرار بدیم؟
در خصوص امنیت هم میتونی برای دیتابیس(دسترسی بهش) توی خود منیجمنت سرور یوزر پسورد درست بکنی و دسترسی های بهش رو محدود بکنی به نرمافزارت و اون یوزر بخصوص و از این حرفا خلاصه
من با منیجمنت مشکل دارم . میشه نحوه قرار دادن سطح دسترسی درست و مورد نیاز رو توضیح بدی؟
یه سری اسکریپت مینویسی که وقتی عدد سال عوض شد یا به هر صورتی که میخواد عمل بکنه! اسکریپتهای دیتچ و ساخت مجدد دیتابیس و وارد کردن یه سری اطلاعات اولیه رو انجام بده و بره پی کارش...
نحوه نوشتن این اسکریپت ها استفاده از اون توی برنامه چه طور صورت میگیره؟ میشه یه مثال بزنی؟ بمثلا اسکریپت اتچ و دیتچ میتونی بزاری؟
باز هم ممنون .
راستش من یک سری اطلاعات رو توی دیتابیس به صورت پیش فرض دارم که میخوام توش باشه. با ایجاد دیتابیس به روش اسکریپت میشه این اطلاعات رو درون دیتابیس داشت؟
بعله....
همهی این کارا رو موتور SQL سرور انجام میده با اسکریپت و فرقی براش نمیکنه که خودش جنریت کرده باشه یا شما نوشته باشی! ....
اما در مورد ایجاد دیتابیس .مثلا در صورت ایجاد در local . در این صورت برای نصب برنامه در یک سیستم دیگر نیاز به نصب نسخه ای از اس کیو ال و یا چیز دیگری هست؟؟ برای مثال باید برای سیستم مقابل sql manager نصب کنیم و سپس دیتابیس رو درون local او سیستم قرار بدیم؟
شما موقع ایجاد فایل نصب و اینا، میتونی تیک همراه شدن فایلهای مورد نیاز برای سرور رو هم بزنی که دیگه خود سیستم همراه با نصب نرمافزار شما اون رو هم نصب میکنه و نیازی نیست اون همه مراحل نصب فایل های سنگین اسکیوال سرور رو انجام بدی.... حجم فایلی که خود ویژوال اوستودیو میفرستاد فک کنم حدود 110-20 مگ بودش! :)...
من الان متاسفانه رو سیستم اسکیو ال سرور ندارم و داره دانلود میشه نسخهی 2012 اون که بخوام براتون بگم و یه 6-7 ماهی هم میگذره از اخرین برنامه نویسیی که انجام دادم :(....
برا همین از سورس های اینترنتی براتون پیدا کردم:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
کلیت کار این بود که دیتابیس رو روی فلش کنارش کلیک میکردین تا پوشههای زیر مجموعهاش نمایش داده بشه... بعدش اون پایین تو اخرین گزینههای دیتابیس، سکیورتی هستش که اونجا باید یه یوزر جدید ایجاد بکنین و یوزر های قبلی رو دسترسی هاشون رو ویرایش بکنین و از این حرفا...
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
دو لینکی که براتون قرار دادم، اولی معرفی سطوح دسترسی ها هستش و دومی روش کامل و دقیق انجام کار ...شرمنده دیگه، چون خودم رو سیستم ندارمش نمیتونم خودم براتون بگم دقیقا باید چیکار بکنین...
در خصوص اسکریپت هم من بهش میگم اسکریپت! منظور همون کد های SQL هستش که باید بنویسید! :)...
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
مثلا این تکه کد، دیتابیسی رو به نام database_name براتون میسازه!!...
در نهایت، این روش خیلی ...(بیخیالش!)...
حالت هوشمندانهی انجام کار اینه که شما کل دیتابیس رو بسازی، تمام قوانین یوزر و خلاصه کارت رو باهاش تموم بکنی، دیتای اولیه و اینا رو هم بریزی توش، همهی این کارا که تموم شد، روی اسم دیتابیس کلیک راست میکنین، از بخش Tasks انتخاب میکنین چیزی شبیه به Generate script یا همچین چیزی رو...!!
صفحهی جدیدی ساخته میشه که بهتون کدهای مربوطه رو میده... البته میتونین تنظیماتش رو هم دستکاری بکنین که مثلا فقط ساختار دیتابیس رو براتون جنریت بکنه یا دیتا و اینا هم همراهش باشن و خلاصه از این حرفا، فایل مربوطه رو یا از همونجا ذخیره بکنین( راه سخت!) یا همهی تکست های داخلش رو کپی کنین توی یه فایل نوت پد ذخیره کنین و خلاص!!!...
برای استفاده هم کاملا شبیه به کدهای معمولی SQL میباشه....
یعنی همونجوری که کانکشن استرینگ و اضافه کردن و حذف کردن و از این حرفا مینویسین، اینبار این کدهای جنریت رو مینویسین و داخل یه متد قرار میدین که با فراخونیش، اون اتفاقات میافته...
برای دیتچ و اتچ هم راستش کد SQL یادم نیست( هرچند به لطف LINQ اصلا یاد نگرفتم چنین چیزایی رو!:) )....
بنابراین بهتره کدهای SQL اتچ و دیتچ رو پیدا کنین و استفاده کنین!:)
shadmehrshadow1
21-10-2013, 10:54
خیلی ممنون از کمک ها و راهنمایی هاتون و وقتی که میذارید.
یک سوال دیگه هم داشتم . من برای مثلا جست و جو و نمایش اطلاعات توی دیتا گرید از یه همچین کدی استفاده می کنم. به نظرتون این روش مناسبه؟ روش بهتری رو پیشنهاد می کنید؟
آیا بهتر نیست در هنگام لود کردن نتیجه در صورتی که اطلاعات زیاد باشه از یک پروگرس بار استفاده کنم؟ آیا میشه چنین کاری کرد؟ چه طوری؟
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
البته من VB بلد نیستم زیاد، ولی به نظر میرسه که خوب هستش این کار و در حقیقت روش همگان همین میباشه! :)...
اما، در خصوص پراگرس بار بله میشه...
راههاش که زیاده، ولی بهترینش همون بکگراند ورکر میباشه...
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.