PDA

View Full Version : سوال: روش ذخیره تغییرات Incremental/Absolute



FastCode
یک شنبه 08 مرداد 1391, 18:18 عصر
سلام.
من یک دیتابیس توزیع شده برای کاربرد خودم نوشتم(تقریباً کار میکنه)
که تک تک سلولهاش بدون هرگونه type بندی و دسته بندی encrypt شدن.

مثلاً فرض کنید اینها همه تغییرات Incremental ه سطر R از جدول ه T هستند.

Row 1 : Key A : Data 0xABCD
Row 2 : Key B : Data 0x1234
Row 3 : Key A : Data 0x5678
Row 4 : Key B : Data 0x90bf
Row 5 : Key A : Data 0x9364

Row1 Insert
Row 2 Alter
Row 3 Alter
Row 4 Alter
Row 5 Alter

کاربر A کلید B را ندارد ولی کاربر B کلید A را دارد.
پس کاربر A نمیتواند تغییرات شماره ۲ و ۴ را بخواند.
همه سطرها ممکن است توسط کاربر B ایجاد شده باشند و قصد بعضی از آنها تغییر سطح دسترسی با تغییر کلید باشد.

راهکار استاندارد برای نمایش کامل سطر R برای کاربر A چیست؟
اطلاعات از سطر ۱ و ۳ خوانده شود؟
از کاربر B درخواست شود که اطلاعات را Decrypt کند؟
چیز دیگر؟
طراحی اشتباه است؟
سطر کامل نمایش داده نشود؟
اطلاعات با عنوان Invalid/Dirty نمایش داده شود؟


توجه : دیتابیس به هیچ عنوان به این شکل مسخره نمایش داده شده طراحی نشده.این فقط یک مدل هست برای نمایش اطلاعات.

xxxxx_xxxxx
چهارشنبه 25 مرداد 1391, 01:06 صبح
سلام،
یکم بیشتر توضیح بده. دیتابیس نوشتی؟ یعنی RDBMS ؟
برای چی دیتاها رو encrypt میکنی؟ برای امنیت؟ میدونی decrypt کردن دیتاها اونم تو دیتابیس توزیع شده چقدر دهن سرور رو سرویس میکنه؟
به هر حال هدف اصلی رو اگه بگی بهتر میشه در موردش صحبت کرد.
فکر میکنم کاری که میخوای انجام بدی یه چیزی تو مایه های Global Temporary Table توی ORACLE هست. یه سرچ کن ببین میتونی ازش ایده بگیری. من که درست متوجه منظورت نشدم!

FastCode
شنبه 28 مرداد 1391, 02:18 صبح
سلام،
یکم بیشتر توضیح بده. دیتابیس نوشتی؟ یعنی RDBMS ؟
برای چی دیتاها رو encrypt میکنی؟ برای امنیت؟ میدونی decrypt کردن دیتاها اونم تو دیتابیس توزیع شده چقدر دهن سرور رو سرویس میکنه؟
به هر حال هدف اصلی رو اگه بگی بهتر میشه در موردش صحبت کرد.
فکر میکنم کاری که میخوای انجام بدی یه چیزی تو مایه های Global Temporary Table توی ORACLE هست. یه سرچ کن ببین میتونی ازش ایده بگیری. من که درست متوجه منظورت نشدم!
سلام
آره,بله RDBMS
امنیت,آره.روی سرور نیست که.توزیع شدست
هدف اصلی یه RDBMS ه که برای smartphone ها و هندست ها نوشتم
مشکلش هم اینه که اگر یه نفر بدونه سطح دسترسی کافی بخواد اطلاعات(پست اول) رو بخونه گیج میزنه چون به همه ی سطر دسترسی نداره.نمی دونم در این وضعیت باید در BLL چکار کنم.
در DAL خیلی سخت با قربانی کردن امنیت کلی اطلاعات میتونم اطلاعات ه invalid رو مشخص کنم.(flag کردن اطلاعات تغییر کرده(readonly ولی ممکنه روی امنیت اثر بگزاره)) ولی در query ها و BLL نمیتونم چه راه حلی رو پیش بگیرم.
یک راه اینه که invalid بودن ه اطلاعات رو یکی یکی چک کنم که به نظرم احمقانست.
دنبال یه راه حل ه کلی تر میگردم

پ.ن.
در این معماری خیلی سعی کردم server رو کامل حذف کنم.تا جاهایی هم موفق بودم.
ولی در آخر باید یک coordinator باشه

مدل کلی دیتابیس و روش کار:
91430

این تصویر یک مقدار مشکل داره
دز تصویر سمت چپ
RowData یک array هست
Contents هم encrypt شدست که یا OO.o نتونستم رنگش رو عوض کینم
Index هم اضافست(