بهرام 1368
پنج شنبه 09 آبان 1392, 19:36 عصر
با عرض سلام و آرزوی داشتن لحظاتی خوش ...
بنده اکثر مباحث در مورد امنیت بانک اطلاعاتی SQL Server که در این انجمن مطرح شده است را مطالعه کردم؛ اما متأسفانه همچنان ابهاماتی در ذهنم وجود دارد. ممنون میشوم اگر پاسخ دهید.
هدف کلی: قرار است نرم افزاری تحت شبکه طراحی و تولید شود به طوری که هنگام تحویل به مشتری مطمئن باشیم کسی نمی تواند به ساختار، جداول و محتوای بانک اطلاعاتی ضمیمه شده به برنامه دسترسی پیدا کند.
آن گونه که در انجمن ها بحث شده، دسترسی به محتوای بانک اطلاعاتی می تواند از همان کامپیوتر باشد (به عنوان مثال کاربر مدیر با نصب SQL Server Management بانک اطلاعاتی را باز کند) یا اینکه دیتابیس را سرقت نماید و از روی یک کامپیوتر دیگر این دسترسی غیرمجاز را انجام دهد.
با تلاش هایی که بنده انجام دادم، ظاهراً ایجاد این امنیت به سادگی مطرح کردن آن نیست. یعنی مانند Access نمی توانیم رمز عبور برای بانک اطلاعاتی قرار دهیم (صرف نظر از اینکه Access را به عنوان بانک اطلاعاتی قبول داشته باشیم یا خیر). احتمالاً تا اینجا با نظر من موافق هستید؛ اگر تناقضی وجود دارد مطرح بفرمایید.
من در مورد Schema، Role و User در SQL Server مطالعاتی داشتم اما متأسفانه نتوانستم با آنها امنیت مورد نظر را تأمین کنم. همچنان با این مشکل مواجه هستم که هر کاربر حاضر در گروه مدیران ویندوز و یا SA می تواند به محتویات بانک اطلاعاتی من دسترسی داشته باشد.
سؤال اول: آیا با غیرفعال کردن SA این امنیت تأمین می گردد؟
سؤال دوم: آیا با ایجاد یک Named Instance اختصاصی این امنیت تأمین می گردد؟
سؤال سوم: آیا رمزگذاری اطلاعات (مثل روش TDE) کمکی به این موضوع میکند؟ بهتر نیست که تلاش کاربر برای دسترسی غیرمجاز با یک رمز عبور قوی متوقف شود تا اینکه با اطلاعات رمزگذاری شده مواجه شود؟ گاهی اوقات امنیت ساختار بانک اطلاعاتی که برای آن زحمات زیادی کشیده شده از اطلاعات ذخیره شده در آن مهمتر است؛ بنابراین راه حل امنیتی جامعی باید وجود داشته باشد تا همه جوانب آن سنجیده شود.
سؤال چهارم: آیا به طور کلی امنیتی که در ذهن من وجود دارد، در SQL Server 2012 قابل پیاده سازی است یا اینکه موضوع پیچیده تر از آن است که من تصور میکنم؟
با تشکر
بنده اکثر مباحث در مورد امنیت بانک اطلاعاتی SQL Server که در این انجمن مطرح شده است را مطالعه کردم؛ اما متأسفانه همچنان ابهاماتی در ذهنم وجود دارد. ممنون میشوم اگر پاسخ دهید.
هدف کلی: قرار است نرم افزاری تحت شبکه طراحی و تولید شود به طوری که هنگام تحویل به مشتری مطمئن باشیم کسی نمی تواند به ساختار، جداول و محتوای بانک اطلاعاتی ضمیمه شده به برنامه دسترسی پیدا کند.
آن گونه که در انجمن ها بحث شده، دسترسی به محتوای بانک اطلاعاتی می تواند از همان کامپیوتر باشد (به عنوان مثال کاربر مدیر با نصب SQL Server Management بانک اطلاعاتی را باز کند) یا اینکه دیتابیس را سرقت نماید و از روی یک کامپیوتر دیگر این دسترسی غیرمجاز را انجام دهد.
با تلاش هایی که بنده انجام دادم، ظاهراً ایجاد این امنیت به سادگی مطرح کردن آن نیست. یعنی مانند Access نمی توانیم رمز عبور برای بانک اطلاعاتی قرار دهیم (صرف نظر از اینکه Access را به عنوان بانک اطلاعاتی قبول داشته باشیم یا خیر). احتمالاً تا اینجا با نظر من موافق هستید؛ اگر تناقضی وجود دارد مطرح بفرمایید.
من در مورد Schema، Role و User در SQL Server مطالعاتی داشتم اما متأسفانه نتوانستم با آنها امنیت مورد نظر را تأمین کنم. همچنان با این مشکل مواجه هستم که هر کاربر حاضر در گروه مدیران ویندوز و یا SA می تواند به محتویات بانک اطلاعاتی من دسترسی داشته باشد.
سؤال اول: آیا با غیرفعال کردن SA این امنیت تأمین می گردد؟
سؤال دوم: آیا با ایجاد یک Named Instance اختصاصی این امنیت تأمین می گردد؟
سؤال سوم: آیا رمزگذاری اطلاعات (مثل روش TDE) کمکی به این موضوع میکند؟ بهتر نیست که تلاش کاربر برای دسترسی غیرمجاز با یک رمز عبور قوی متوقف شود تا اینکه با اطلاعات رمزگذاری شده مواجه شود؟ گاهی اوقات امنیت ساختار بانک اطلاعاتی که برای آن زحمات زیادی کشیده شده از اطلاعات ذخیره شده در آن مهمتر است؛ بنابراین راه حل امنیتی جامعی باید وجود داشته باشد تا همه جوانب آن سنجیده شود.
سؤال چهارم: آیا به طور کلی امنیتی که در ذهن من وجود دارد، در SQL Server 2012 قابل پیاده سازی است یا اینکه موضوع پیچیده تر از آن است که من تصور میکنم؟
با تشکر