# پایگاه‌های داده > SQL Server > امنیت در SQL Server >  شروع اعمال امنیت در sql

## Fahime_FM

سلام دوستان
 من قبلا db های زیادی ساختم اما تا حالا تو بحث امنیت کار نکردم
من می خوام در db که ساختم امنیت رو اعمال کنم از کجا باید شروع کنم؟ممنون میشم کمکم کنید.

----------


## baktash.n81@gmail.com

فکر کنم بهترین کار اینکه اول سئوال درستی بپرسید ... یعنی شما چه توقعی از امنیت در SQL دارید ... ؟ بعد از این که امنیت رو روی بانک پیاده سازی کردید (بقول شما البته ...) بانک شما دارای چه ویژگی خواهد شد ؟!

----------


## Fahime_FM

با سلام
من می خوام در بانکم کنترل login ها و دسترسی های کاربران رو داشته باشم
براب داده هام سطح دسترسی تعریف کنم
به طور کلی discretionary access control و mandatory access control
در ضمن علاوه بر امنیت اگه تو زمینه های زیر هم به من کمک کنید ممنون میشم
log گیری
تعریف transaction(تراکنش)
همزمانی (cuncurrency)

----------


## KhabatA

با سلام. 
من میخام بدونم که 
 دلیل اینکه میگن اعتبار سنجی Sql Server Authentication، از لحاظ امنیتی خوب نیس چیه؟

در این روش اعتبار سنجی باید یوزر و پسورد در رشته اتصال ذکر بشه.و اگر کسی بخاد میتونه با استفاده از نرم افزارهای کرک برنامه پایگاه داده ما را دی اسمبل کنه و به راحتی یوزر و پسورد ما را پیدا کنه.

آیا دلیلش همینه؟  نمیشه یوزر و پسورد رو از توی یه فایل DLL خوند یا از روشهایی مثل hash استفاده کرد. تا اطمینان بالا بره؟ آیا با استفاده از رمز گذاری یوزر و پسورد بازهم میشه اونو کرک کرد؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

----------


## حمیدرضاصادقیان

سلام
بحث اینه که وقتی به وسیله Windows Authentication اعتبارسنجی بشه شما هم از Domain Control ، کاربر مورد نظر رو محدود میکنید هم اینکه میتونید کل دسترسی هاشو ار SQL server ببندید.
ولی در SQL Server هرچقدر پسورد قوی باشه و امنیت بالایی باشه، کاربر اگر دسترسی Administrator Local خودش رو داشته باشه و SQl server نیز روی سیستم خودش باشه میتونه سرویس رو Stop کنه و داده ها رو منتقل کنه.

----------


## KhabatA

> سلام دوستان
>  من قبلا db های زیادی ساختم اما تا حالا تو بحث امنیت کار نکردم
> من می خوام در db که ساختم امنیت رو اعمال کنم از کجا باید شروع کنم؟ممنون میشم کمکم کنید.



اول در زمینه اعمال امنیت در اس کیوال سرور یه کم مطالعه کن. بهتره اول با Management studio شروع کنی و در این محیط گرافیکی اعمال امنیت رو یاد بگیری. و یوزر ها و نقش ها رو بسازی. تو اینترنت متاسفانه من نتونستم کتاب خوبی گیر بیارم ولی با سرچ کردن عباراتی مث How to create login in Management studio و امثال آن میتونی اطلاعات خوبی بدس بیاری. پک های مولتی مدیای آموزشی هم هس البته زیاد بحث امنیتو بخوبی پوشش نمیدن ولی برای شروع بد نیست. مث پک SQl اینیاک.

در محیط  Management studio برای شروع یک دیتا بیس ایجاد کن .در پوشه security  مربوط به محیط  Management studio بصورت پیش فرض  ، Builtin Administrator قرار دارد اگه قبلا حذفش نکردی. وجود Builtin Administratorیعنی اینکه هر اکانت ویندوزی که از نوع ادمینستراتور باشه میتونه به SQL  وصل بشه. حال ویندوزت را لوگاف کن و تو یه اکانت از نوع ادمین برو.بعد یه پروژه جدید بساز و به بانکت وصل شود بدون ذکر کردن یوزر و پسورد در رشته اتصال.  میبینی که میتونی به بانکت وصل بشی.

حال این پروژه رو ببند و در قسمت کنترل پانل و User Account ،  اکانت Guest  را فعال کن و ویندوزت رو با اسفاده از اکانت Guest  بیار بالا.
یه پروژه مث پروژه قبلیت بساز و به بانک متصل شو.میبینی که دسترسی مجاز نیست. (اکانت Guest بصورت پیش فرص نمیتونه به SQL دسترسی داشته باشه مگر اینکه قبلا مجوز دسترسیشو فعال کرده باشی.

----------


## Mehdi Naderi

> بحث اینه که وقتی به وسیله Windows Authentication اعتبارسنجی بشه شما هم از Domain Control ، کاربر مورد نظر رو محدود میکنید هم اینکه میتونید کل دسترسی هاشو ار SQL server ببندید.
> ولی در SQL Server هرچقدر پسورد قوی باشه و امنیت بالایی باشه، کاربر اگر دسترسی Administrator Local خودش رو داشته باشه و SQl server نیز روی سیستم خودش باشه میتونه سرویس رو Stop کنه و داده ها رو منتقل کنه


منظور شما اینه که در اعتبارسنجی Windows Authentication  امنیت بیشتری برقراره؟ 
اگر دیتابیس روی سرور باشه  کدام روش بهتره؟
با تشکر

----------


## حمیدرضاصادقیان

بله ، به صورت Windows authentication شما از امنیت بیشتری برخوردار هستید.
برای اطلاعات بیشتر *اینجا* رو ببینید.

----------

