View Full Version : سوال: دسترسی به دیتابیس فقط در حالت SQL Server Authentication
Rocker
دوشنبه 03 آبان 1389, 23:58 عصر
سلام خدمت تمامی بزرگوارن:
فرض کنید که ما شرایطی رو فراهم آوردیم که یک کاربر در حالت Mixed Mode (Sql Server Authentication) فقط به یک دیتابیس خاص دسترسی داشته باشه اما اگر با حالت Windows Authentication به اس کیو ال متصل بشه میتونه به همه ی دیتابیسها دسترسی داشته باشه.
حالا من چطور میتونم جلوی اینکارو بگیرم یعنی اگر حتی فردی با مد Windows Authentication به دیتابیس متصل شد نتونه به اون دیتابیس خاص دسترسی داشته باشه به عبارتی دیگه حتما باید از مد Sql Server Authentication استفاده کنه تا بتونه به دیتابیس دسترسی داشته باشه.
اگر پیشنهاد بهتری برای جلوگیری از دسترسی هر کسی به دیتابیس دارم استقبال میکنم.
نکته ی مهم: نکته ای که باید در نظر داشت اینه که نباید تنظیمات را طوری تغییر بدهیم که سایر برنامه هایی که با همین اس کیو ال سرور مشغول کار هستند دچار مشکل بشند.
ممنون از کمکتون
حمیدرضاصادقیان
سه شنبه 04 آبان 1389, 08:05 صبح
سلام.من ابتدا توضیحی در مورد Authentication ها بدم. ببینید در زمان نصب شما به دو صورت میتونید SQL server رو نصب کنید.یکی به روش Mixed Mode و یکی به روش Sql Authentication.
در روش اول کاربران هم به وسیله Windows Authentication و هم به روش SQL Authentication میتونند به سرور شما وصل بشوند.
در روش دوم فقط کاربرانی که یک Login در سرور برای آنها تعریف شده میتوانند به وسیله همان Login به سرور متصل شوند.
حالا شما برای این کار دو راه حل وجود داره.یکی اینکه کاربر ویندوزی اون شخص رو شما در SQL Server تعریف کنید و دسترسیشو محدود کنید. همچنین Login ADministrator ویندوز رو نیز از بخش Login حذف کنید.چون در اینصورت هرکسی با Admin وارد بشه میتونه به دیتابیسهای شما هم دسترسی داشته باشه.
روش دوم این هست که شما فقط با روش SQL Authentication کار کنید برای اینکار میتونید روی سرور راست کلیک کرده Properties رو بزنید و در قسمت SEcurity گزینه SQL authentication رو انتخاب کنید.
بعد برای هرکاربر یک login تعریف کرده و دسترسی هاشو مشخص کنید . بعد هر کاربر فقط باید با Login مربوط به خودش به دیتابیس شما وصل بشه.
موفق باشید
SQL DEVELOP
سه شنبه 04 آبان 1389, 17:56 عصر
از کد زیر برای حذف لاگین لوکال ادمین استفاده کنید. در صورت نیاز یوزر مربوط در دیتابیس خاص را نیز حذف فرمائید:
USE [master]
GO
DROP LOGIN [BUILTIN\Administrators]
GO
Rocker
سه شنبه 04 آبان 1389, 23:34 عصر
سلام.من ابتدا توضیحی در مورد Authentication ها بدم. ببینید در زمان نصب شما به دو صورت میتونید SQL server رو نصب کنید.یکی به روش Mixed Mode و یکی به روش Sql Authentication.
در روش اول کاربران هم به وسیله Windows Authentication و هم به روش SQL Authentication میتونند به سرور شما وصل بشوند.
در روش دوم فقط کاربرانی که یک Login در سرور برای آنها تعریف شده میتوانند به وسیله همان Login به سرور متصل شوند.
حالا شما برای این کار دو راه حل وجود داره.یکی اینکه کاربر ویندوزی اون شخص رو شما در SQL Server تعریف کنید و دسترسیشو محدود کنید. همچنین Login ADministrator ویندوز رو نیز از بخش Login حذف کنید.چون در اینصورت هرکسی با Admin وارد بشه میتونه به دیتابیسهای شما هم دسترسی داشته باشه.
روش دوم این هست که شما فقط با روش SQL Authentication کار کنید برای اینکار میتونید روی سرور راست کلیک کرده Properties رو بزنید و در قسمت SEcurity گزینه SQL authentication رو انتخاب کنید.
بعد برای هرکاربر یک login تعریف کرده و دسترسی هاشو مشخص کنید . بعد هر کاربر فقط باید با Login مربوط به خودش به دیتابیس شما وصل بشه.
موفق باشید
اول از همه ممنون که جواب دادید
اما من با پیشنهادهای شما کمی مشکل دارم
اگر کاربر خودش SQL رو نصب کرده باشه و در حین نصب برنامه مد Mixed رو انتخاب کرده باشه چی ؟
مشکل پاک کردن Login ADministrator همه اینه که اگر دیتابیسهای دیگه ای هم روی سرور اتچ باشن و برنامه هایی که از اونها استفاده میکنند به صورت عادی (منظورم بدون یوزرنیم و پسورده) کانکشن استرینگهاشون رو ساخته باشن چی؟ یعنی فقط با مد Windows Authentication کار کنن انوقت با خذف این یوزر دیگه نمیتونن به برنامشون کانکت بشن نمونه اش برنامه ی هلو
انوقت باید چه کنیم ؟
حمیدرضاصادقیان
چهارشنبه 05 آبان 1389, 07:46 صبح
سلام.راهی که به ذهن من میرسه اینه که شما administrator رو حذف کنید و برای کاربرانی که در شبکه هستند loginویندوزی اونا رو در قسمت Security اضافه کنید و به دیتابیسهاشون دسترسی بدید.اینجوری اون مشکلی که فرمودید حل میشه.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.