منو

امنيت در پايگاه داده

امنيت در پايگاه داده:امنيت در پايگاه داده
امنيت در پايگاه داده
تصویر مجيد خيرانديش
امنیت در sql
توسط مجيد خيرانديش - يکشنبه، 19 آذر 1391، 03:29 ب.ظ
  امنیت در SQL Server 2005(قسمت اول)
در این مقاله معماری امن سرویس‌دهنده‌ی SQL Server 2005 شرح داده شده است. این معماری مبتنی بر اعتبارها، امن‌شدنی‌ها و مجوزها می‌باشد. اعتبارها، حساب‌های امنیتی هستند که به سیستم دسترسی دارند و به دو سطح ويندوز و سرويس‌دهنده تقسیم می‌شوند. امن‌شدنی‌ها منابع سیستم از قبیل جدول‌ها، رویه‌ها، فایل‌ها و غیره هستند که باید محافظت شوند. امن‌شدنی‌ها نیز همانند اعتبارها، به دو سطح ویندوز و سرویس‌دهنده‌ی SQL تقسیم می‌شوند. مجوزها به اعتبارها اجازه‌ی اجرای عمل خاصی را روی امن‌شدنی‌ها می‌دهند و در دو سطح سرویس‌دهنده و پایگاه داده‌ها اعمال می‌شوند.
لینک دانلود


تصویر مجيد خيرانديش
پاسخ: امنیت در sql
توسط مجيد خيرانديش - يکشنبه، 19 آذر 1391، 03:31 ب.ظ
  امنیت در SQL Server 2005 (قسمت دوم)
در این مقاله ویژگی­‌های امنیتی سرویس­‌دهنده‌‌ی SQL 2005 شرح داده شده است. این مقاله دارای سه بخش کلی می­‌باشد. در بخش اول، نصب و پیکربندی امن آن و ابزارهای نصب امن قسمت­‌های مورد نیاز مدیران سیستم شرح داده شده است. در بخش دوم، به منظور احراز هویت کاربرانی که قصد ورود به سرویس­‌دهنده را دارند، سیاست­‌های کلمه‌ی عبور و احراز هویت کاربران نهایی شرح داده شده است. در بخش سوم، اختیارات اعطا شده به کاربرانی که با موفقیت وارد سیستم شده­‌اند مورد بررسی قرار گرفته است.
لینک دانلود

تصویر مجيد خيرانديش
پاسخ: امنیت در sql
توسط مجيد خيرانديش - يکشنبه، 19 آذر 1391، 03:32 ب.ظ
  ‫امنيت در 2005 ‪SQL Server‬‬ (قسمت سوم)
در اين مقاله ويژگيهاي امنيتي سرويسدهندهي 5002 ‪ SQL‬شرح داده شده است. اين مقاله داراي سه بخش كلي ميباشد.‬ ‫در بخش اول، امنيت سرويسدهندهي 5002 ‪ SQL‬در سطح پايگاه دادهها با بررسي رمزنگاري و تريگرهاي ‪ DDL‬توضيح داده خواهد‬ ‫شد. در بخش دوم و سوم، دو امكان مميزي و توسعه به منظور امنتر شدن سرويسدهندهي 5002 ‪ SQL‬شرح داده خواهد شد.‬
لینک دانلود
تصویر مانيا شيراني
پاسخ: امنیت در sql
توسط مانيا شيراني - يکشنبه، 19 آذر 1391، 04:53 ب.ظ
 

با سلام

ممنون از اینکه این مبحث را آغاز کردید

تصویر مانيا شيراني
پاسخ: امنیت در sql
توسط مانيا شيراني - يکشنبه، 19 آذر 1391، 04:54 ب.ظ
 

بانكهای اطلاعاتی حاوی حجم بسیار زیادی از داده هایی هستندكه چنانچه به دست اشخاص غیر مسئول برسند، می تواند برای شركت و افراد شركتتان بسیار زیان آور باشد . SQL سرور سیستم امنیتی با استحكامی دارد كه به شما امكان می دهد تا سرویس دهنده را درسطحی قفل كنید كه بتوانید دستیابی به سرویس دهنده، و دستیابی به بانك اطلاعاتی را به ستونهای خاصی از یك جدول محدود كنید .

اصول امنیت SQL سرور
SQL سرور واژه ها و مفاهیم زیادی دارد كه باید با آنها آشنا شو. این مفاهیم شامل مراحلی است كه SQL سرور با انجام آنها به یك كاربر امكان می دهد تا تحت مدهای امنیتی مختلف، كه به زودی بررسی خواهند شد، با یك بانك اطلاعاتی ارتباط برقرار كنند. این واژه ها عبارتند از :
ID برقراری ارتباط (Login ID) : ID برقراری ارتباط، بخشی از اطلاعات اعتباركاربراست كه كاربر برای دستیابی به SQL سرور ارائه می دهد .
كلمه عبور : هركلمه عبور صرفا رشته ای ازكاراكترها است كه برای اعلام اعتباركاربری، كه با یكID خاص با سرویس دهنده ارتباط برقرار می كند، به سرویس دهنده ارسال می شود.کلمات عبور خوب باید حرفی عددی باشندو طول آنها نیز حداقل 6 کاراکتر باشد .
ID کاربر : یک مرحله دیگر برای دستیابی به بانک اطلاعاتی خاص است، ID برقراری ارتباط و کلمات عبور، شما را تنها به سرویس دهنده میرسانند .
اگر تا به این حد پیش روید، به هیچ یک از بانکهای اطلاعاتی آن سرویس دهنده دستیابی نخواهید داشت .
بعد از بررسی درستیID برقراری ارتباط توسطSQLسرور و تعیین اینکه کاربر مجاز به دستیابی سرویس دهنده است، وی می بایست یک بانک اطلاعاتی را برای کار انتخاب کند وبعد ID برقراری ارتباط را با تمامID های کاربری آن بانک مقایسه می کند تا اطمینان حاصل شود که کاربر به بانک اطلاعاتی دستیابی دارد .
نقش ها : هر نقش روشی برای گروه بندی کاربران دارای کارهای مشابه به منظور آسان شدن مدیریت است. نقش ها در نگارش های قدیمیSQL سرور تحت عنوان گروه مطرح بودند. به جای تخصیص مجوز به هر یک از کاربران بانک اطلاعاتی، به راحتی می توانید یک نقش ایجاد کنید و بعد از قراردادن کاربران به آن نقش، مجوزها را به آن نقش تخصیص دهید .
نقش برنامه کاربردی : یک نقش ویژه است که امکان دستیابی به داده های موجود در بانک اطلاعاتی را تنها به برنامه های کاربردی خاص می دهد. کاری که این نقش انجام می دهد، آن است که کاربران را مجاب می کند تا از طریق برنامه کاربردی به داده های بانک اطلاعاتی دستیابی پیدا کنند. این کار کاربران را مجاب به استفاده از برنامه کاربردیی می کند که خصوصا برای دستیابی به داده ها نوشته شده و از دستیابی برنامه های کاربردی دیگر جلوگیری میشود .
گروه های ویندوز NT : امنیت SQL سرور، شدیدا بر امنیت ویندوز NT بیان شده است
گروه های ویندوز NT مستقیما به نقش هایSQL سرورقابل نگاشت هستند، از این رو هر کاربری که جزئی از آن گروه باشد، به طور خودکار بهSQL دستیابی خواهد داشت .

تصویر مانيا شيراني
پاسخ: امنیت در sql
توسط مانيا شيراني - يکشنبه، 19 آذر 1391، 04:55 ب.ظ
  فرآیند بررسی اعتبار
وقتی کاربری اقدام به دستیابی به سرویس دهنده میکند، 4 چیز کنترل می شود
امنیت در سطح شبکه : که نخستین سطح امنیت است. کاربران در بیشتر مواقع با یک شبکه ویندوزNT ارتباط برقرار خواهند کرد، اما با هر شبکه دیگری که در کنار شبکه مذکور وجود داشته باشد، نیز می توانند ارتباط برقرار کنند. کاربر باید یکID برقراری ارتباط و یک کلمه عبور معتبر شبکه وارد کند و اگر نه در همین سطح متوقف خواهد شد .
امنیت در خود سرویس دهنده: که دومین سطح امنیت است. وقتی کاربر به این سطح می رسد، می بایست یک ID برقراری ارتباط و یک کلمه عبور معتبربرای پیشروی ارائه کند. بسته به مد امنیتی که در سرویس دهنده به کار میبرید،SQL سرور ممکن است بتواندID برقراری ارتباط با ویندوزNT را تعیین نماید .
نیاز به یک ID کاربری در بانک اطلاعاتی: که سومین سطح امنیت است . هیچ کلمه عبوری در این سطح مطرح نیست. در عوض،ID برقراری ارتباط توسط مدیر سیستم باID کاربری نگاشت می شود .
ارتباط امنیت با مجوزها: آخرین سطح امنیت است .SQL سرور کنترل میکند کهID کاربریی که کاربر از طریق آن به سرویس دهنده دستیابی پیدا کرده است، مجوزهای دستیابی به شیءهای مورد نظر را داشته باشد.این امکان وجود دارد که دستیابی فقط برای برخی شیءها باشدو نه تمام شیءها .
تصویر مانيا شيراني
پاسخ: امنیت در sql
توسط مانيا شيراني - يکشنبه، 19 آذر 1391، 04:56 ب.ظ
 

مدهای امنیت
SQL سروردو روش مختلف برای بررسی اعتبار کاربران ومعرفی آنها به سرویس دهنده دارد .
روش نخست : بررسی اعتبار ویندوز NT : ویندوزNT می تواند از ویژگیهای بسیار بیشتری در سیستم امنیتی خود استفاده کند، از جمله: حداقل طول برای کلمات عبور، تاریخ انقضای کلمات عبور، جلوگیری از برقراری ارتباط بعد از چند اقدام ناموفق. به هنگام استفاده از این روش، کاربر برای دستیابی به سرویس دهنده نیازی به ارائهID برقراری ارتباط و کلمه عبور ندارد، در عوضSQL سرور نام کاربر را از ویندوزNT می خواهد وآن را با فهرست کاربران مجاز مقایسه می کند.
مراحل زیر شما را درآماده سازیSQL سرور برای استفاده از روش بررسی اعتبار ویندوز NT یاری می کنند :
SQL Server Enterprise Manager را باز کنید وبا سرویس دهنده ای که می خواهید مد امنیتی آن را تغییر دهید ارتباط برقرار کنید .
گزینه Properties را انتخاب کنید .
تب Security را پیدا کنید وآن را برگزینید .
گزینه Windows NT Authentication را انتخاب کنید .
SQL Server را دوباره راه اندازی کنید .

روش دوم: بررسی اعتبار ترکیبی SQL سرور: این روش کاربررا مجاب به برقراری ارتباط با سرویس دهنده دریکی از حوزه های ویندوز NT می کند. این روش برای محیط های ترکیبی مناسب نیست چرا که بعضی از سرویس گیرنده ها اصلآ نمی توانند با ویندوزNT ارتباط برقرار کنند. این حالت، یک روش بررسی اعتبارازطریق SQL سرور نیزدرست می کنند. چون این روش لایه های بیشتری دارد، پیچیده ترنیز است .
مراحل زیرشما را درآماده سازی SQL سروربرای استفاده ازروش بررسی اعتبارترکیبی SQL سروریاری می کنند :
SQL Server Enterprise Manager را باز کنید و با سرویس دهنده ای که می خواهید مد امنیتی آن را تغییر دهید ارتباط برقرار کنید.
گزینه Properties را انتخاب کنید
تب Security را پیدا کنید وآن را برگزینید
گزینه Windows NT SQL Server and را انتخاب کنید .
SQL Server را دوباره راه اندازی کنید .

برقراری ارتباط باسروس دهنده وکاربران بانک اطلاعاتی
همانند کارهای دیگری که درSQL سرورانجام می دهید، روشهای مختلف زیادی برای ایجادID های برقراری ارتباط وID های کاربری وجود دارد. نخستین روش برای انجام این کارازطریق یک ویزارد درSQL Enterprise Manager است. این ویزارد شما را گام به گام در ایجاد یک ID برقراری ارتباط ویک ID کاربری یاری می کند
روش دوم برای ایجاد ID ها، استفاده از رویه های ذخیره شده است. اگراز این روش استفاده کنید، درصورت نیاز می توانید همان ID هارا درتمام سرویس دهنده ها ایجاد کنید. آخرین روش، ایجاد مجزای آنها در SQL Enterprise Manager است .
گزینه دیگری که برای افزودن یک ID کاربر دارید، ازرویه های ذخیره شده واجرای SQL Query Analyzer است .
برای بررسی اعتباربا ویندوزNT باید ازرویه ذخیره شده sp-grantloginاستفاده کنید .
وقتی ازروش بررسی اعتبار SQL سروراستفاده می کنید،ازرویه ذخیره شده sp-addloginاستفاده کنید .
قالب sp-grantlogin به شکل زیراست :
sp-grantlogin [@loginname= ]’login’
نامی که پس از sp-grantlogin باید مشخص شود ، نام کاربری ویندوزNT و نام حوزه ای است که کاربر در آن قرار دارد .
به عنوان مثال، برای اینکه کاربری به نامMrMoney از حوزهMonopoly را بهSQL سرور بیفزایید، می بایست دستور زیر را اجرا کنید :
sp-grantlogin’Monopoly/Mr Money’
دستور بالا مجوز دستیابی به بانک اطلاعاتی را به آن کاربر اعطا می کند، اما دستیابی بیشتر را برای وی فراهم نمی کند .

تصویر مانيا شيراني
پاسخ: امنیت در sql
توسط مانيا شيراني - يکشنبه، 19 آذر 1391، 04:59 ب.ظ
 

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

نقش های از پیش تعریف شده سرویس دهنده
نقش های سرویس دهنده برای آن هستند تا برخی از کارهای مدیریتی سرویس دهنده را به اشخاص دیگر واگذار کنید .
هفت نقش از پیش تعریف شده سرویس دهنده به شرح زیر هستند :
sysadmin : اعضای این نقش می توانند هر عملی را در سرویس دهنده انجام دهند. این نقش، مشابهaccount ی به نام sa در نگارش های پیشینSQL سرور است .
serveradmin : اعضای این نقش می توانند پیکربندی مشخصات سرویس دهنده را انجام دهند .
Setupadmin : اعضای این نقش مجازند پیوندهای سرویس دهنده ها را حذف یا اضافه کنند .
Securityadmin : اعضای این گروه می توانند برقراری ارتباط با سرویس دهنده را مدیریت کنند .
Processadmin : اعضای این گروه می توانند هر فرآیندی را که درSQLسرور اجرا می شود را مدیریت کنند .
dbcreator : این گروه مجوز ایجاد بانکهای اطلاعاتی در سرویس دهنده را دارد .
diskadmin : این گروه مجوز ایجاد و مدیریت فایل ها در دیسک را دارد .

 

نقش های از پیش تعریف شده بانک اطلاعاتی
نقش های از پیش تعریف شده بانک اطلاعاتی به کاربران امکان می دهند تا عملیات گوناگونی را انجام دهند .
نه نقش از پیش تعریف شده بانک اطلاعاتی عبارتند از :
db-owner : اعضای این گروه به عنوان مالک بانک اطلاعاتی تعریف می شوند .
db-accessadmin : عضویت در این گروه به کاربر امکان می دهد تا کاربران ویندوزNT و sql سرور را در بانک اطلاعاتی حذف یا به آن بیفزاید .
db-datareader : اعضای این گروه می توانند تمام داده های جداول کاربری بانک اطلاعاتی را ببینند .
db-datawriter : اعضای این گروه مجوز افزودن، تغییریا حذف داده های تمام جداول کاربری بانک اطلاعاتی را دارند .
db-ddladmin : به کاربرامکان می دهد تا شئ های یک بانک اطلاعاتی راحذف، اضافه یا اصلاح کند .
db-securityadmin : اعضای این گروه می توانند نقش ها و اعضای نقش های بانک اطلاعاتیSQL سرور را مدیریت کنند .
db-backupoperator : اعضای این نقش مجوز تهیه نسخه پشتیبان از بانک اطلاعاتی را دارند .
db-denydatareader : اعضای این گروه نمی توانند هیچیک از داده های بانک اطلاعاتی را ببینند .
db-denydatawriter : اعضای این گروه هیچ مجوزی برای تغییر داده های بانک اطلاعاتی ندارند .

 

نقش عمومی
نقش عمومی یک نوع نقش بانک اطلاعاتی ویژه است که تمام کاربران بانک اطلاعاتی عضوی از آن هستند. این نقش به هنگام ایجاد تمام بانک های اطلاعاتی ایجاد می شود .
فایده این نقش زمانی مشخص می شود که می خواهید مجموعه ای از مجوزهای پیش فرض را به تمام کاربران بدهید .

 

نقش های شخصی بانک اطلاعاتی
نقش های شخصی بانک اطلاعاتی، نقش هایی هستند که مدیر سیستم برای مقاصد ویژه ایجاد می کند. این نقش ها توانایی تخصیص مجوزهای ویژه ای را فراهم می کنند که در نقش های از پیش تعریف شده موجود نیستند. قوانینی که می بایست به هنگام ایجاد این نقش ها به خاطر داشته باشید عبارتند از :
نقش های شخصی بانک اطلاعاتی در محدوده یک بانک اطلاعاتی ایجاد می شوند و در وسط چند بانک اطلاعاتی قابل گسترش نیستند .
کاربران در هر لحظه نمی توانند به بیش از یک نقش شخصی بانک اطلاعاتی تعلق داشته باشند .
نقش های شخصی می توانند حاویID های برقراری ارتباط ویندوزNT ،IDهای برقراری ارتباطSQLسرور و دیگر نقش های SQLسرور باشند .

تصویر استاد - آقاي دكتر عبدالحسين صراف زاده
پاسخ: امنیت در sql
توسط استاد - آقاي دكتر عبدالحسين صراف زاده - دوشنبه، 20 آذر 1391، 11:48 ق.ظ
 

با سلام به همه شما

 

خوشحالم که سوالات به این خوبی‌ مطرح میشود و همگی‌ با پاسخ‌های بسیار خوب از بحث‌ها استقبال می‌کنید. از این پس به هر سوال خوب ۱ نمره و هر پاسخ مرتبط و قابل قبول ۱ نمره تعلق می‌گیرد. تا سقف ۵ نمره از این طریق میتوانید کسب کنید.

صراف زاده

تصویر مجيد خيرانديش
پاسخ: امنیت در sql
توسط مجيد خيرانديش - دوشنبه، 20 آذر 1391، 01:36 ب.ظ
  با تشکر
تصویر مهدی اسدی قالهری
پاسخ: امنیت در sql
توسط مهدی اسدی قالهری - دوشنبه، 20 آذر 1391، 05:11 ب.ظ
  باسلام
يكي از بهترين مقالاتي كه در اين مورد وجود دارد مقالات زير مي باشد كه مطالب مناسبي در آن وجود دارد
تصویر مهدی اسدی قالهری
پاسخ: امنیت در sql
توسط مهدی اسدی قالهری - دوشنبه، 20 آذر 1391، 05:14 ب.ظ
  مطلب ديگر
تصویر مهدی اسدی قالهری
پاسخ: امنیت در sql
توسط مهدی اسدی قالهری - سه شنبه، 21 آذر 1391، 11:27 ب.ظ
  با سلام
اما فایروال پایگاه داده به صورت فایل پیوست است
تصویر مجيد خيرانديش
پاسخ: امنیت در sql
توسط مجيد خيرانديش - چهار شنبه، 22 آذر 1391، 08:31 ب.ظ
 

چند سوال درباره اس کیو ال اینجکشن

درواقع SQL Injection تزریق کد مورد نظر به یک رشته SQL Server هست.
فرض کنید تکه کدی مانند زیر در برنامه استفاده کردید.


Begin
SQL.clear;
SQl.add(Select * from table1 where name=+edit1.text);
open;

در اینجا اگر شما هر رشته ای در edit1 بنویسید رشته اون عینا به این رشته منتقل شده و جلوی نام قرار میگیره.
حالا کاربر میتونه رشته رو به این شکل ارسال کنه.
1
2
;Delete from Table1;

در اینجا کاربر ابتدا رشته شما رو بسته و رشته خودش رو اضافه میکنه و در اخر مابقی دستور رو نیز Comment میکنه .
به این میگن تزریق کد.
که راه برای جلوگیری از این مورد استفاده از ارسال پارامتریک مقادیر هست یا استفاده از SP.
تصویر مجيد خيرانديش
پاسخ: امنیت در sql
توسط مجيد خيرانديش - دوشنبه، 4 دي 1391، 12:21 ق.ظ
  دوستان اگر نمونه کدی از روش تزریق کد دارند خواهشمند است جهت بالا بردن اطلاعات عمومی ارسال نمایند
با تشکر

25 نظر

  • محمد زند / 10 صبح / 5 دی 1395, / جواب

    تست

    • محمد زند / 10 صبح / 5 دی 1395, / جواب

      تست

نظر بدهید

به صفحه اول خوش آمدید