ورود

View Full Version : جلوگیری از باز شدن فایل MDF



mahdi_farhani
پنج شنبه 06 دی 1386, 15:56 عصر
سلام ،
قبل از اینکه این تاپیکو بزنم ، سرچ کردم چیزی که کار منو را بندازه پیدا نکردم
صورت مسئله به این شکله ، من یه web App دارم که داره با SQL کار میکنه ، حالا ممکنه که روی اینترنت اجرا بشه یا روی یه شبکه محلی و یا روی یکسیتم به صورت Stand alone در دو حالت قبلی هیچ مشکلی ندارم چون مطئله بر میگرده به امنیت سرور و کاری بش نداریم ولی در حالت سوم که برنامه روی یک سیستم اجرا میشه و اینجا این کامپیوتر هم نقش سرور داره و هم نقش کلاینت .
مسئله اصلی اینجاست که اگر روی این سیستم Enterprise Manger و یا Managment Stdio نصب بود کاربر با سطح دسترسی Admin هم تنونه اطلاعات بانک رو ببینه ( نه اطلاعات جداول ، نه View ها و نه Sp ) آیا میشه یه همچنین کاری رو کرد یا نه .
ما به یه هاست وصل میشیم تمام دیتا بیسها رو میبینیم ولی فقط به دیتابیس خودمون دسترسی داریم . حالا من میخواهم بر عکس اینکارو انجام بدم ( یعنی همه دیتابیسهای کلاینت باز بشه الا دیتابیس من )
اگر راهی نیست ، خوب ما میام اطلاعاتو کد میکنیم ( Encrypt ) به این صورت هیچ مشکلی ندارم ولی نمی خواهم Sp ها دیده بشه ، چونکه یکسری از عملیات که در سیستم دارم داخل Sp ها انجام میشه ( مثلاً بررسی یکسری شرایط برای درج یکسری اطلاعات و یا تغییر بعضی دیگر و .... )
بهترین راه حل برای این مشکل چیه !!!!

Alireza Orumand
پنج شنبه 06 دی 1386, 17:01 عصر
سلام
خوب اگر نمیخواهید هیچ کس بتونه اطلاعات بانک رو مشاهده کنه میتونید برای دیتابیس خودتون یوزر تعریف کنید و فقط کسانی که شما به اونها اجازه دادید بتونن با دیتابیس کار کنن.
برای SPها هم اگر میخواهید کسی نتونه سورس شما رو ببینه میتونید از withencryption موقع ساخت SP استفاده کنید که دیگه کسی به سورس دسترسی نداشته باشه.
موفق باشید.

mahdi_farhani
پنج شنبه 06 دی 1386, 23:57 عصر
مرسی
یعنی چی یوزر بزار ، دیتا بیسهام به غیر از Sa یه User دیگه دارن که از داخل برنامه من بش کانیکت میشم ، دیگه کجا باید یوزر تعریف کنم .
میشه یه مثال بزنید withencryption چون نمیدونم کجا و چطوری باید بنویسیم

SYNDROME
جمعه 07 دی 1386, 07:17 صبح
میشه یه مثال بزنید withencryption چون نمیدونم کجا و چطوری باید بنویسیم


این هم یک مثل
CREATE PROCEDURE SP_1
@Name Nvarchar(20)
With ENCRYPTION
AS
Declare
@Test(20)

ولی یک مشکلی دارد.
این تاپیک را مطالعه کنید
http://barnamenevis.org/forum/showthread.php?t=87823
اگر هم بخواهید برای Userهایتان Pass بگذارید بانک قفل می شود ولی اگر بانکتان را روی یک SQL دیگر Attach کنند دیگر PAss وجود ندارد و بانک شما قابل دست کاری است.
موفق باشید

scorpion_man
جمعه 07 دی 1386, 12:00 عصر
با سلام به همه دوستان
یعنی هیچ راهی نداره که user نتونه به دیتا بیس دسترسی داشته باشه واقعا این برای من سواله؟؟؟

SYNDROME
جمعه 07 دی 1386, 13:09 عصر
با سلام به همه دوستان
یعنی هیچ راهی نداره که user نتونه به دیتا بیس دسترسی داشته باشه واقعا این برای من سواله؟؟؟
در حالتی که سیستم به صورت تک کاربره است راهی نیست.
ولی اگر به لینک فوق نگاه کنید می بینید که من یک بانک را دیده ام که قفل شده است و نمی توانم بازش کنم ولی مشکل اینجاست که خودم من و کسی از دوستان هم نمی دانند این بانک چطوری قفل شده است.
موفق باشید