SeaView-additional-Material-Thanks-to-B-Momeni.pdf

‫به نام خدا‬
‫مدل اکنترل دسترسی اجباری در راک‌هاکار‬
‫‪SeaView‬‬
‫تهیه شده برای درس امنیت پایگاه داده‬
‫توسط‪ :‬بهنام مومنی‬
‫استاد درس‪ :‬داکتر رسول جلیلی‬
‫مسال دوم ‪۱۳۹۱-۹۲‬‬
‫نی ک‌‬
‫طاها‬
‫سرخ ک‌‬
‫‪2‬‬
‫●‬
‫تاریخچه‪ ،‬معماری و کنترل دسترسی اجباری‬
‫●‬
‫رابطس‌هی چندسطحی و امکان چندنمونس‌هسازی‬
‫●‬
‫ردس‌هی تاپل‬
‫●‬
‫خصیصس‌هاها و قاعدس‌هاهای جامعیت‬
‫●‬
‫وابستگی چندمقداری )یادآوری از پایگاه دادس‌هاها(‬
‫●‬
‫چندنمونس‌هسازی رابطه‪ ،‬تاپل و صفت؛ در اثر درج یا بس‌هاهنگاس‌مسازی‬
‫●‬
‫پیادس‌هسازی در عمل و تفسیر درج و بس‌هاهنگاس‌مسازی‬
‫●‬
‫کنترل دسترسی اختیاری‬
‫تاریخچه‬
‫مدل ‪ SeaView‬توسط ‪ Dorothy E. Denning‬و ‪Teresa F. Lunt‬‬
‫معرفی شده است‪.‬‬
‫●‬
‫●‬
‫●‬
‫●‬
‫در سال ‪ 1987‬چگونگی پیادس‌هسازی مدل رابطس‌هاهای چندسطحی بیان گشت‪،‬‬
‫ایراداهایی که توسط ‪ Jajodia‬و ‪ Sandhu‬در سال ‪ 1989‬از این مدل گرفته‬
‫شده‪ ،‬در گزارش نهایی ‪ SeaView‬در اهمان سال ‪ 1989‬رفع گشتند‪،‬‬
‫لسازی صوری ‪ SeaView‬انجام گرفته و در‬
‫حاها و مد س‌‬
‫و در سال ‪ 199۰‬اصل س‌‬
‫مقالس‌های در ‪ IEEE TRANSACTIONS ON SOFTWARE ENGINEERING‬منتشر شد‪.‬‬
‫یگردند‪.‬‬
‫این مطالب بر مبنای مقالس‌هی ]‪ [Denning‬و مقالس‌هی ]‪ [Lunt‬بیان م س‌‬
‫●‬
‫‪3‬‬
‫معماری‬
‫●‬
‫●‬
‫‪4‬‬
‫لیس‌هی نخست‬
‫●‬
‫کنترل دسترسی اجباری‬
‫●‬
‫مدل ‪‌Bell & LaPadula‬‬
‫●‬
‫لاهای چندنمونس‌هسازی شده‬
‫پایگاس‌هاهای داده‪ ،‬رابطس‌هاها و تاپ س‌‬
‫لیس‌هی دوم‬
‫●‬
‫کنترل دسترسی اختیاری‬
‫●‬
‫کسطحی‬
‫رابطس‌هاهای ت س‌‬
‫●‬
‫‪ TCB‬و ‪Reference Monitor‬‬
‫اکنترل دسترسی اجباری و ردک‌هاها‬
‫●‬
‫برای خواندن یک شی در ردس‌هی ‪ c‬باید عامل ‪ S‬دارای ردس‌هی خواندن‬
‫دارای تفوق باشد‪:‬‬
‫‪read-class(S) >= c‬‬
‫●‬
‫برای نوشتن بر روی یک شی در ردس‌هی ‪ c‬باید عامل ‪ S‬دارای ردس‌هی‬
‫نوشتن متفوق توسط ‪ c‬باشد‪:‬‬
‫‪write-class(S) <= c‬‬
‫●‬
‫‪5‬‬
‫●‬
‫●‬
‫اهمواره ردس‌هی خواندن بر نوشتن تفوق دارد‪ .‬عدم تساوی این دو به‬
‫معنی وجود عامل معتمد است‪:‬‬
‫)‪read-class(S) > write-class(S‬‬
‫●‬
‫رابطک‌هی چندسطحی و امکان چندنمونک‌هسازی‬
‫●‬
‫شمای یک رابطه‬
‫●‬
‫پایگاه داده‪ ،‬رابطه‪ ،‬تاپل و صفت‬
‫)‪R(A1, C1, A2, C2, …, An, Cn | Tc‬‬
‫●‬
‫●‬
‫اهر یک از این موارد بنابر ردس‌هی امنیتی عامل )در واقع شامل رده و حیطه با‬
‫یتوانند مقداراهای گوناگونی به خود بگیرند‪.‬‬
‫اهم( م س‌‬
‫نمونه‪ :‬در ردس‌هی محرمانه برای حقوق یک فرد عدد ‪ 1۵۰،۰۰۰‬و در ردس‌هی‬
‫قتر ‪ 1۵۰،۴۶۳‬ذخیره شده است‪.‬‬
‫فوق محرمانه برای اهمان فرد عدد دقی س‌‬
‫–‬
‫‪6‬‬
‫●‬
‫لاهای ردس‌هی‬
‫یبینند ولی عام س‌‬
‫لاهای ردس‌هی فوق محرمانه اهر دو مقدار را م س‌‬
‫عام س‌‬
‫یبینند‪.‬‬
‫محرمانه فقط دادس‌هی ‪ 1۵۰،۰۰۰‬را م س‌‬
‫رابطک‌هی چندسطحی و امکان چندنمونک‌هسازی‬
‫●‬
‫●‬
‫●‬
‫‪7‬‬
‫یبیند )برای نمونه رابطس‌هاهای چندسطحی( معرفی‬
‫ابتدا آنچه کاربر م س‌‬
‫یشوند‪.‬‬
‫م س‌‬
‫یشود نشان‬
‫پس از آن آنچه در ‪ SeaView‬در عمل پیادس‌هسازی م س‌‬
‫یشود‪.‬‬
‫داده م س‌‬
‫گرچه چندنمونس‌هسازی و رابطس‌هاهای چندسطحی به سبب نگس‌هداری و‬
‫لاهای ردس‌هاهای‬
‫نتر برای عام س‌‬
‫نمایش دادس‌هاهای ردس‌هاهای امنیتی پایی س‌‬
‫یداهد‪ ،‬ولی پیادس‌هسازی‬
‫امنیتی بالتر افزونگی زیادی را بروز م س‌‬
‫یکااهد‪.‬‬
‫یاهای مذکور م س‌‬
‫مناسب تا حد زیادی از ذخیرس‌هسازی افزونگ س‌‬
‫رابطک‌هی چندسطحی و امکان چندنمونک‌هسازی‬
‫●‬
‫سه نوع رابطس‌هی چندسطحی دیده شده است‪:‬‬
‫●‬
‫رابطس‌هی حقیقی‪ :‬برای ذخیرس‌هسازی حقیقی دادس‌هاها‬
‫‪MREAL-IDS‬‬
‫●‬
‫رابطس‌هی دید‪ :‬برای ایجاد دیداهای مجازی روی رابطس‌هاهای حقیقی یا‬
‫مجازی دیگر‬
‫‪MVIEW-IDS‬‬
‫●‬
‫–‬
‫رابطس‌هی تصویرلحظس‌های‪ :‬برای ذخیرس‌هسازی وضعیت پایگاه داده در یک‬
‫سوجوی خاص(‬
‫زمان خاص )از طریق دریافت پاسخ یک پر س‌‬
‫‪MSNAPSHOT-IDS‬‬
‫‪8‬‬
‫–‬
‫–‬
‫ردک‌هی تاپل در رابطک‌هی حقیقی چندسطحی‬
‫●‬
‫●‬
‫یشود‪.‬‬
‫ردس‌هی تاپل دس‌رواقع ذخیرس‌هسازی نم س‌‬
‫تاهای یک تاپل‪ ،‬ردس‌هی آن‬
‫کترین حد بالی ردس‌هاهای امنیتی صف س‌‬
‫کوچ س‌‬
‫یداهد‪.‬‬
‫تاپل را تشکیل م س‌‬
‫‪For state s, real relation R, and class c:‬‬
‫)‪r in mreleation-instance(s, R, c) => mtuple-class(r‬‬
‫})‪= l.u.b. {c' | c' = melement-class(r, I), 1<=i<=mlength(r‬‬
‫●‬
‫●‬
‫یشود اگر و تنها اگر ردس‌هی آن‬
‫یک تاپل توسط یک عامل دیده م س‌‬
‫عامل بر ردس‌هی آن تاپل تفوق داشته باشد‪.‬‬
‫‪9‬‬
‫●‬
‫ردک‌هی تاپل در اهمک‌هی رابطک‌هاهای چندسطحی‬
‫●‬
‫اهر تاپل ‪ r‬در یک رابطس‌هی چندسطحی دارای یک ردس‌هی تاپل است‪ .‬این‬
‫تاهای دیگر )اهمچون ‪ (i‬تفوق داشته‬
‫مقدار باید بر ردس‌هی اهمس‌هی صف س‌‬
‫باشد‪:‬‬
‫)‪melement-class(r,i) <= mtuple-class(r‬‬
‫‪10‬‬
‫●‬
‫ردک‌هی تاپل در رابطک‌هاهای مجازی )دید(‬
‫●‬
‫●‬
‫●‬
‫یشود بر‬
‫ردس‌هی یک تاپل که در یک دید‪ ،‬در یک ردس‌هی امنیتی دیده م س‌‬
‫تاهای آن تاپل تفوق دارد‪،‬‬
‫ردس‌هی اهمس‌هی صف س‌‬
‫یشد‪.‬‬
‫یشد‪ ،‬باز اهم آن تاپل دیده م س‌‬
‫اگر دید در ردس‌هی تاپل تفسیر م س‌‬
‫بگذاری دادس‌هاهای اخذ شده در حالت ‪ s‬برای عبارت‬
‫خصیصس‌هی برچس س‌‬
‫‪ e‬در ردس‌هی ‪ c‬به نام )‪:(Labeling Derived Data Property‬‬
‫‪1) r in meval(s, e, mtuple-class(r)) and‬‬
‫‪2) r in meval(s, e, c) => mtuple-class(r) <= c‬‬
‫‪11‬‬
‫ردک‌هی تاپل در رابطک‌هاهای مجازی )دید(‬
‫●‬
‫برای نمونه اگر یک دید بر روی جدول زیر برای دیدن نام افرادی به‬
‫ناها محرمانه است‪ ،‬گرچه نام افراد محرمانه‬
‫کار رود که حقوق آ س‌‬
‫نگر دادس‌هاهای محرمانه‬
‫نیست‪ ،‬ولی اهمس‌هی ناس‌ماهای دیده شده نشا س‌‬
‫اهستند و نباید توسط افراد با ردس‌هی عادی دیده شوند‪.‬‬
‫‪TC‬‬
‫‪CSalary‬‬
‫‪Salary‬‬
‫‪CName‬‬
‫‪Name‬‬
‫‪S‬‬
‫‪S‬‬
‫‪100K‬‬
‫‪U‬‬
‫‪Ali‬‬
‫‪U‬‬
‫‪U‬‬
‫‪50K‬‬
‫‪U‬‬
‫‪Hassan‬‬
‫;'‪SELECT Name FROM Employee WHERE CSalary = 'S‬‬
‫‪12‬‬
‫‪TC‬‬
‫‪CName‬‬
‫‪Name‬‬
‫‪S‬‬
‫‪U‬‬
‫‪Ali‬‬
‫خصیصک‌هی میان نمونک‌های )‪(Inter-Instance Property‬‬
‫●‬
‫به ازای اهر رابطس‌هی چندسطحی حقیقی ‪ R‬و اهر ردس‌هی ‪ c‬و حالت ‪s‬‬
‫این خصیصه برقرار است اگر و تنها اگر برای اهر تاپل ‪ r‬که در آن‬
‫نتر است‪:‬‬
‫یشود و ردس‌هی ‪ p‬که به طور اکید از ‪ c‬پایی س‌‬
‫رده دیده م س‌‬
‫●‬
‫●‬
‫اگر ‪ p‬بر ردس‌هی تاپل ‪ r‬تفوق داشت‪ :‬بتوان ‪ r‬را در ‪ p‬اهم دید‪،‬‬
‫اگر ‪ p‬بر ردس‌هی کلید تاپل ‪ r‬تفوق داشت ولی دست کم یک صفت آن‬
‫تاهای‬
‫چنین نبود‪ ،‬بتوان در ‪ p‬یک تاپل ‪ t‬متناظر با ‪ r‬را دید که صف س‌‬
‫تاهای دارای ردس‌هی بالتر‪:‬‬
‫ناند به جز برای آن صف س‌‬
‫آن با ‪ r‬یکسا س‌‬
‫–‬
‫‪13‬‬
‫ناها برابر ردس‌هی کلید‬
‫یگزین شده و ردس‌هی آ س‌‬
‫چمقدار جا س‌‬
‫تاها با اهی س‌‬
‫آن صف س‌‬
‫یگیرد‪.‬‬
‫تاپل ‪ r‬قرار م س‌‬
‫ننمونک‌های‬
‫نمونه – خصیصک‌هی میا ک‌‬
‫کارمند‬
‫‪C1‬‬
‫حقوق‬
‫‪C2‬‬
‫واحد‬
‫‪C3‬‬
‫‪Tc‬‬
‫علی‬
‫‪S‬‬
‫‪1۰۰‬‬
‫‪S‬‬
‫انبار‬
‫‪S‬‬
‫‪S‬‬
‫حسن‬
‫‪U‬‬
‫‪2۰۰‬‬
‫‪TS‬‬
‫اداری‬
‫‪U‬‬
‫‪TS‬‬
‫امیر‬
‫‪TS‬‬
‫‪۴۰۰‬‬
‫‪TS‬‬
‫مدیریت‬
‫‪TS‬‬
‫‪TS‬‬
‫رابطه از دید فردی در ردس‌هی ‪TS‬‬
‫‪14‬‬
‫کارمند‬
‫‪C1‬‬
‫حقوق‬
‫‪C2‬‬
‫واحد‬
‫‪C3‬‬
‫‪Tc‬‬
‫علی‬
‫‪S‬‬
‫‪1۰۰‬‬
‫‪S‬‬
‫انبار‬
‫‪S‬‬
‫‪S‬‬
‫حسن‬
‫‪U‬‬
‫‪-‬‬
‫‪U‬‬
‫اداری‬
‫‪U‬‬
‫‪U‬‬
‫رابطه از دید فردی در ردس‌هی ‪S‬‬
‫قاعدک‌هاهای جامعیت‬
‫●‬
‫●‬
‫جامعیت ردس‌هی پایگاه داده )‪(Database Class Integrity‬‬
‫رابطس‌هی ‪ R‬در سطح امنیتی بالتری نسبت به کل پایگاه داده ذخیره‬
‫یشود تا بدون دسترسی به پایگاه داده‪ ،‬نتوان به ‪ R‬اهم دسترسی‬
‫م س‌‬
‫پیدا کرد‪:‬‬
‫))‪mrelation-class(R) >= database-class(mrelation-database(R‬‬
‫‪15‬‬
‫●‬
‫قاعدک‌هاهای جامعیت‬
‫●‬
‫جامعیت موجودیت )‪(Entity Integrity‬‬
‫●‬
‫برای اهر رابطس‌هی چندسطحی حقیقی ‪ R‬با ‪ n‬صفت که کلید ظااهری‬
‫یشود‪ ،‬برای اهر ردس‌هی ‪ c‬که بر ردس‌هی ‪R‬‬
‫آن از ‪ k‬صفت تشکیل م س‌‬
‫یشود‪:‬‬
‫تفوق دارد و برای اهر تاپل ‪ r‬که در ردس‌هی ‪ c‬در ‪ R‬دیده م س‌‬
‫‪16‬‬
‫●‬
‫چمقدار بوده‪،‬‬
‫اهمس‌هی ‪ k‬صفت کلید مخالف اهی س‌‬
‫●‬
‫دارای ردس‌هی امنیتی یکسانی اهستند و‬
‫●‬
‫تاهای دیگر بر ردس‌هی کلید تفوق دارد‪.‬‬
‫ردس‌هی اهمس‌هی صف س‌‬
‫قاعدک‌هاهای جامعیت‬
‫●‬
‫●‬
‫جامعیت ارجاعی )‪(Referential Integrity‬‬
‫اگر صفت ‪ i‬از رابطس‌هی حقیقی ‪ R‬به صفت ‪ j‬از رابطس‌هی حقیقی ‪Q‬‬
‫ارجاع داهد‪:‬‬
‫●‬
‫●‬
‫‪17‬‬
‫چمقدار باشد یا برابر‬
‫باید صفت ‪ i‬در اهر تاپل ‪ r‬از رابطس‌هی ‪ R‬یا برابر اهی س‌‬
‫مقدار صفت ‪ j‬از یک تاپل در رابطس‌هی ‪ Q‬باشد‪،‬‬
‫ردس‌هی صفت ‪ i‬از تاپل ‪ r‬اهم باید برابر ردس‌هی صفت ‪ j‬در تاپل متناظرش‬
‫باشد‪.‬‬
‫چندنمونک‌هسازی‬
‫●‬
‫قاعدس‌هی جامعیت چندنمونس‌هسازی )‪(Polyinstantiation Integrity‬‬
‫●‬
‫بنابر این قاعده‪ ،‬اگر تاپل ‪ r‬از یک رابطس‌هی حقیقی ‪ R‬در ردس‌هی ‪ c‬دیده‬
‫تاهای ‪ K‬در آن کلید ظااهری را نشان داهند و ‪ C1‬ردس‌هی‬
‫شود که صف س‌‬
‫تاها برقرار خوااهد‬
‫مزمان برای دیگر صف س‌‬
‫کلید را بیان کند‪ ،‬دو شرط زیر اه س‌‬
‫بود‪:‬‬
‫●‬
‫●‬
‫‪18‬‬
‫یشود‪،‬‬
‫مقدار اهر صفت ‪ Ai‬توسط کلید‪ ،‬ردس‌هی کلید و ردس‌هی ‪ Ci‬مشخص م س‌‬
‫کلید و ردس‌هی آن‪ ،‬مقدار ‪ Ai‬و ردس‌هی آن ‪ Ci‬را به صورت چندمقداری معلوم‬
‫یسازند‪.‬‬
‫م س‌‬
‫چندنمونک‌هسازی‬
‫●‬
‫حالت نخست‪ :‬وابستگی تابعی‬
‫‪(K, C1, Ci) → Ai‬‬
‫●‬
‫●‬
‫بدین معنی است که برای اهر کلید ظااهری‪ ،‬در اهر رده تنها یک مقدار‬
‫برای صفت ‪ Ai‬وجود دارد؛ مقدار ‪ Ai‬در یک ردس‌هی خاص معین است‪.‬‬
‫حالت دوم‪ :‬وابستگی چندمقداری‬
‫)‪(K, C1) ↠ (Ai, Ci‬‬
‫●‬
‫‪19‬‬
‫●‬
‫●‬
‫یآید و‬
‫یعنی مقدار و ردس‌هی صفت ‪ i‬تنها با دانستن کلید ظااهری بس‌هدست م س‌‬
‫یپذیرد‪.‬‬
‫تاها تأثیری نم س‌‬
‫از مقدار دیگر صف س‌‬
‫وابستگی چندمقداری )یادآوری(‬
‫●‬
‫بر مبنای ]‪ [Elmasri‬صفحس‌هی ‪ ۵۳۳‬و ]‪ [Silber‬صفحس‌هی ‪:29۵‬‬
‫●‬
‫●‬
‫‪20‬‬
‫وابستگی چندمقداری ‪ X↠Y‬در رابطس‌هی ‪ R‬که ‪ X‬و ‪ Y‬اهر دو‬
‫تاهای ‪ R‬اهستند به این معنی است که‪:‬‬
‫زیرمجموعس‌های از صف س‌‬
‫اگر صفاتی از ‪ R‬که در ‪ X‬یا ‪ Y‬نیستند‪ ،‬با ‪ Z‬نشان داده شوند‪ ،‬در اهر‬
‫وضعیتی از رابطس‌هی ‪ ،R‬اگر دو تاپل ‪ t1‬و ‪ t2‬وجود داشته باشند که در‬
‫تاهای ‪ X‬یکسان باشند‪ ،‬آنگاه دو تاپل ‪ t3‬و ‪ t4‬اهم وجود دارند که‪:‬‬
‫صف س‌‬
‫]‪t1[X]=t2[X]=t3[X]=t4[X‬‬
‫●‬
‫]‪t4[Y]=t2[Y‬‬
‫‪and‬‬
‫]‪t3[Y]=t1[Y‬‬
‫●‬
‫]‪t4[Z]=t1[Z‬‬
‫‪and‬‬
‫]‪t3[Z]=t2[Z‬‬
‫●‬
‫وابستگی چندمقداری )یادآوری(‬
‫●‬
‫●‬
‫به بیان دیگر‪ ،‬مقدار ‪ X‬توانسته اهمس‌هی مقداراهای ‪ Y‬را مستقل از‬
‫مقداراهای ‪ Z‬تعیین کند‪.‬‬
‫پس اگر تاپل جدیدی درج شود و اهمان مقدار ‪ X‬را به مقدار جدیدی‬
‫لاهای دیگری نیز باید در‬
‫برای ‪ Y‬و ‪ Z‬مرتبط سازد‪ ،‬به ناچار تاپ س‌‬
‫رابطه درج گردند تا‪:‬‬
‫●‬
‫●‬
‫‪21‬‬
‫تاهای ‪ Y‬را معین کند‪،‬‬
‫مقدار ‪ X‬به تنهایی تمام حال س‌‬
‫با دانستن مقدار ‪ X‬برای تعیین اهمس‌هی مقداراهای ‪ Y‬اهیچ نیازی به‬
‫اطلع از مقدار ‪ Z‬نباشد )استقلل کامل ‪ Y‬و ‪ Z‬حفظ شود(‪.‬‬
‫نمونه ‪ -‬وابستگی‬
‫چندمقداری‬
‫)یادآوری(‬
‫تفسیر این مدل در برگس‌هی بعدی آمده است‪.‬‬
‫این تصویر از آدرس زیر برداشته شده است‪:‬‬
‫‪http://www.cse.ohio-state.edu/~gurari/course/cse670/cse670Ch2.xht‬‬
‫‪22‬‬
‫نمونه ‪ -‬وابستگی چندمقداری )یادآوری(‬
‫●‬
‫●‬
‫●‬
‫●‬
‫●‬
‫‪23‬‬
‫اهر کارمند باید در یک و تنها یک دپارتمان کار کند و اهر دپارتمان باید‬
‫دست کم یک کارمند داشته باشد‪.‬‬
‫ممکن است یک کارمند مدیر چندین دپارتمان باشد ولی اهر دپارتمان‬
‫باید یک و تنها یک مدیر داشته باشد‪.‬‬
‫یتواند سرپرست چندین کارمند دیگر باشد‪.‬‬
‫اهر کارمند م س‌‬
‫اهر کارمند ممکن است چند خویشاوند داشته باشد ولی اهر خویشاوند باید‬
‫به یک و تنها یک کارمند وابسته باشد‪.‬‬
‫جدول نشان داهندس‌هی کارمند‪ ،‬رابطس‌هی سرپرستی و خویشاونداهایش در‬
‫برگس‌هی بعدی آمده است‪.‬‬
‫نمونه ‪ -‬وابستگی چندمقداری )یادآوری(‬
‫●‬
‫●‬
‫‪24‬‬
‫‪E.Dept‬‬
‫‪E.Supervise D.Name D.Rel‬‬
‫‪E.Lname‬‬
‫‪E.Fname‬‬
‫‪E.Ssn‬‬
‫‪Financial‬‬
‫‪Child‬‬
‫‪Sara‬‬
‫‪222‬‬
‫‪Ahmadi‬‬
‫‪Ali‬‬
‫‪111‬‬
‫‪Financial‬‬
‫‪Child‬‬
‫‪Sara‬‬
‫‪333‬‬
‫‪Ahmadi‬‬
‫‪Ali‬‬
‫‪111‬‬
‫‪Financial‬‬
‫‪NULL‬‬
‫‪NULL‬‬
‫‪NULL‬‬
‫‪Ehsani‬‬
‫‪Hassan‬‬
‫‪222‬‬
‫‪Logistics‬‬
‫‪NULL‬‬
‫‪NULL‬‬
‫‪555‬‬
‫‪Tabrizi‬‬
‫‪Akbar‬‬
‫‪333‬‬
‫سه صفت ‪ Ssn‬کارمند‪ ،‬کارمند مورد سرپرستی وی و اهمچنین نام‬
‫یداهند‪.‬‬
‫خویشاوند کلید اصلی در جدول فوق را تشکیل م س‌‬
‫در این جدول کارمنداهای تحت سرپرستی یک کارمند مستقل از‬
‫خویشاوندان کارمند سرپرست اهستند‪ .‬این موضوع سبب افزونگی‬
‫یشود‪.‬‬
‫یاهای چندمقداری نشان داده م س‌‬
‫شده است و با وابستگ س‌‬
‫‪E.Ssn ↠ E.Supervise‬‬
‫‪● E.Ssn ↠ D.Name‬‬
‫●‬
‫چندنمونک‌هسازی‬
‫وضعیت مشابهی در رابطس‌هاهای چندسطحی در زمان چندنمونس‌هسازی‬
.‫یداهد‬
‌‫رخ م س‬
●
●
(K, C1) ↠ (Ai, Ci)
Name
CName
Dept
CDept
Salary
CSalary
TC
Babak
S
d1
S
5K
S
S
Ali
S
d2
S
30K
TS
TS
Sara
TS
d2
TS
30K
TS
TS
Sara
S
d1
S
10k
S
S
(Name, CName) ↠ (Dept, Cdept)
● (Name, CName) ↠ (Salary, CSalary)
●
25
‫درج و چندنمونک‌هسازی‬
‫●‬
‫●‬
‫‪26‬‬
‫برای عمل درج اگر تاپل دیگری با کلید یکسان در ردس‌هی عامل‬
‫نپذیر نیست‪.‬‬
‫جکننده وجود داشته باشد‪ ،‬درج امکا س‌‬
‫در س‌‬
‫و اگر کلید یکسانی نباشد )یا در اهمان رده نباشد؛ یعنی در ردس‌هی‬
‫لاهای‬
‫نتر بوده و برای عام س‌‬
‫بالتر بوده و دیده نشود یا در ردس‌هی پایی س‌‬
‫یگزینی آن وجود نداشته باشد(‪،‬‬
‫محدودتر نگس‌هداری شده و قصد جا س‌‬
‫یگردد‪.‬‬
‫لاها م س‌‬
‫آنگاه درج انجام شده و منجر به چندنمونس‌هسازی تاپ س‌‬
‫نمونه – درج و چندنمونک‌هسازی‬
‫●‬
‫●‬
‫برای نمونه بعد از درج تاپل جدید علی در سطح ‪ ،TS‬جدول حاوی‬
‫سطر ‪ TS‬برای علی در کنار سطر پیشین ‪ S‬برای وی خوااهد شد‪.‬‬
‫دو تاپل ‪ S‬و ‪ TS‬برای علی به طور کامل از اهم مستقل بوده و‬
‫ناها بر دیگری اثری نخوااهد گذاشت‪.‬‬
‫بس‌هاهنگاس‌مسازی اهیچ کدام از آ س‌‬
‫‪TC‬‬
‫‪CSalary‬‬
‫‪Salary‬‬
‫‪CDept‬‬
‫‪Dept‬‬
‫‪CName‬‬
‫‪Name‬‬
‫‪S‬‬
‫‪S‬‬
‫‪5K‬‬
‫‪S‬‬
‫‪d1‬‬
‫‪S‬‬
‫‪Babak‬‬
‫‪TS‬‬
‫‪TS‬‬
‫‪30K‬‬
‫‪S‬‬
‫‪d2‬‬
‫‪S‬‬
‫‪Ali‬‬
‫‪TS‬‬
‫‪27‬‬
‫‪TS‬‬
‫‪40K‬‬
‫‪TS‬‬
‫‪d3‬‬
‫‪TS‬‬
‫‪Ali‬‬
‫‪TS‬‬
‫‪TS‬‬
‫‪30K‬‬
‫‪TS‬‬
‫‪d2‬‬
‫‪TS‬‬
‫‪Sara‬‬
‫‪S‬‬
‫‪S‬‬
‫‪10k‬‬
‫‪S‬‬
‫‪d1‬‬
‫‪S‬‬
‫‪Sara‬‬
‫مسازی و چندنمونک‌هسازی‬
‫بک‌هاهنگا ک‌‬
‫●‬
‫●‬
‫‪28‬‬
‫برای عمل بس‌هاهنگاس‌مسازی‪ ،‬اگر عامل صفتی را که در ردس‌هی وی دارای‬
‫مقدار است تغییر داهد‪ ،‬بس‌هسادگی اهمان صفت مقدار خود را تغییر‬
‫یداهد‪،‬‬
‫م س‌‬
‫ولی اگر صفت در آن رده فاقد مقدار بود )در ردس‌هی بالتر مقدار داشت‬
‫یشد یا اینکه در ردس‌هی‬
‫چمقدار دیده م س‌‬
‫و در نتیجه به صورت اهی س‌‬
‫نتر مقدار داشت و به دلیل ‪ NO-WRITE-DOWN‬امکان‬
‫پایی س‌‬
‫لاهای جدیدی درج شده و‬
‫تغییر آن وجود نداشت(‪ ،‬آنگاه تاپل یا تاپ س‌‬
‫یداهد‪.‬‬
‫تاها رخ م س‌‬
‫چندنمونس‌هسازی در سطح صف س‌‬
‫مسازی و چندنمونک‌هسازی‬
‫نمونه – بک‌هاهنگا ک‌‬
‫●‬
‫●‬
‫‪29‬‬
‫برای نمونه جدول زیر با یک تاپل را در نظر بگیرید‪.‬‬
‫‪TC‬‬
‫‪CSalary‬‬
‫‪Salary‬‬
‫‪CDept‬‬
‫‪Dept‬‬
‫‪CName‬‬
‫‪Name‬‬
‫‪S‬‬
‫‪S‬‬
‫‪5K‬‬
‫‪S‬‬
‫‪d1‬‬
‫‪S‬‬
‫‪Babak‬‬
‫اگر عاملی در ردس‌هی ‪ TS‬حقوق بابک را تغییر داهد‪ ،‬در سطح ‪ S‬حقوق‬
‫یماند‪.‬‬
‫وی اهمچنان برابر ‪ 5K‬باقی م س‌‬
‫‪TC‬‬
‫‪CSalary‬‬
‫‪Salary‬‬
‫‪CDept‬‬
‫‪Dept‬‬
‫‪CName‬‬
‫‪Name‬‬
‫‪S‬‬
‫‪S‬‬
‫‪5K‬‬
‫‪S‬‬
‫‪d1‬‬
‫‪S‬‬
‫‪Babak‬‬
‫‪TS‬‬
‫‪TS‬‬
‫‪10K‬‬
‫‪S‬‬
‫‪d1‬‬
‫‪S‬‬
‫‪Babak‬‬
‫مسازی و چندنمونک‌هسازی‬
‫نمونه – بک‌هاهنگا ک‌‬
‫●‬
‫●‬
‫●‬
‫‪30‬‬
‫حال اگر عامل در ردس‌هی ‪ TS‬بخوااهد مقدار دپارتمان را اهم به ‪d2‬‬
‫یشوند‪.‬‬
‫تغییر داهد‪ ،‬دو تاپل جدید اضافه م س‌‬
‫‪TC‬‬
‫‪CSalary‬‬
‫‪Salary‬‬
‫‪CDept‬‬
‫‪Dept‬‬
‫‪CName‬‬
‫‪Name‬‬
‫‪S‬‬
‫‪S‬‬
‫‪5K‬‬
‫‪S‬‬
‫‪d1‬‬
‫‪S‬‬
‫‪Babak‬‬
‫‪TS‬‬
‫‪TS‬‬
‫‪10K‬‬
‫‪S‬‬
‫‪d1‬‬
‫‪S‬‬
‫‪Babak‬‬
‫‪TS‬‬
‫‪S‬‬
‫‪5K‬‬
‫‪TS‬‬
‫‪d2‬‬
‫‪S‬‬
‫‪Babak‬‬
‫‪TS‬‬
‫‪TS‬‬
‫‪10K‬‬
‫‪TS‬‬
‫‪d2‬‬
‫‪S‬‬
‫‪Babak‬‬
‫دلیل این اتفاق وابستگی چندمقداری از کلید به اهر صفت است‪.‬‬
‫بابک باید مستقل از دپارتمان )چه ‪ d1‬و چه ‪ (d2‬بتواند در ردس‌هی ‪S‬‬
‫حقوق ‪ 5K‬و در ردس‌هی ‪ TS‬حقوق ‪ 10K‬را ببیند‪.‬‬
‫مسازی و چندنمونک‌هسازی‬
‫نمونه – بک‌هاهنگا ک‌‬
‫●‬
‫●‬
‫●‬
‫‪31‬‬
‫اهمچنین باید برای بابک مستقل از مقدار حقوق )چه ‪ 5K‬باشد و چه‬
‫‪ (10K‬بتوان در ردس‌هی ‪ S‬دپارتمان ‪ d1‬و در ردس‌هی ‪ TS‬دپارتمان‬
‫‪ d2‬را مشااهده کرد‪.‬‬
‫تاهای یک‬
‫یشود که با بس‌هاهنگاس‌مسازی مقداراهای صف س‌‬
‫این امر سبب م س‌‬
‫لاهای دارای ردس‌هاهای‬
‫تاپل با مقدار و ردس‌هی کلید یکسان توسط عام س‌‬
‫یشده‬
‫لاهای چندنمونس‌هساز س‌‬
‫گوناگون‪ ،‬به سرعت شمار فراوانی از تاپ س‌‬
‫دیده شوند‪.‬‬
‫لاها از دید عامل سطح بال دیده شده ولی از دید عامل سطح‬
‫این تاپ س‌‬
‫یکنند‪.‬‬
‫پایین اهیچ تغییری ایجاد نم س‌‬
‫پیادک‌هسازی در عمل‬
‫●‬
‫●‬
‫گرچه آنچه از دید کاربر نشان داده شد‪ ،‬دارای افزونگی بسیار زیادی به‬
‫دلیل ‪MVD‬اها بود‪ ،‬در عمل این افزونگی حذف شده و ذخیره‬
‫یشود‪.‬‬
‫نم س‌‬
‫برای پیادس‌هسازی رابطس‌هی چندسطحی حقیقی‬
‫)‪R(A1, C1, A2, C2, …, An, Cn | Tc‬‬
‫●‬
‫‪32‬‬
‫●‬
‫با فرض وجود ‪ Nc‬سطح امنیتی گوناگون )در مشبکس‌هی ردس‌هاها و‬
‫حیطس‌هاها( برای اهر یک از ‪ n‬صفت موجود در ‪ ،R‬تعداد ‪Nc ×n‬‬
‫یشود‪.‬‬
‫کسطحی حقیقی ایجاد م س‌‬
‫رابطس‌هی ت س‌‬
‫پیادک‌هسازی در عمل‬
‫●‬
‫●‬
‫لاها دارای ردس‌هی یکسانی‬
‫تاهایی که باید در اهمس‌هی تاپ س‌‬
‫اهمس‌هی صف س‌‬
‫یشوند‪.‬‬
‫باشند‪ ،‬در یک دسته )اهمانند ‪ (Ai‬قرار داده م س‌‬
‫تاهای کلید ‪ K‬اهم که دارای ردس‌هی یکسانی اهستند )به‬
‫اهمس‌هی صف س‌‬
‫یاهای حوزس‌هی مسأله‬
‫تاهایی که بسته به نیازمند س‌‬
‫اهمراه دیگر صف س‌‬
‫لزم بوده که با کلید دارای ردس‌هی یکسانی باشند( در دستس‌هی ‪A1‬‬
‫یگیرند‪.‬‬
‫قرار م س‌‬
‫‪K ⊆ A1‬‬
‫‪33‬‬
‫●‬
‫پیادک‌هسازی در عمل‬
‫●‬
‫●‬
‫●‬
‫‪34‬‬
‫کسطحی ‪ R1,c‬که تنها ‪ A1‬را‬
‫به ازای اهر ردس‌هی ‪ ،C1‬یک رابطس‌هی ت س‌‬
‫یشود‪.‬‬
‫یشود‪ .‬این رابطه در ردس‌هی ‪ c‬ذخیره م س‌‬
‫یگیرد ساخته م س‌‬
‫دربرم س‌‬
‫کسطحی ‪ Ri,c‬ساخته شده و در‬
‫به ازای اهر ردس‌هی ‪ ،Ci‬یک رابطس‌هی ت س‌‬
‫یشود‪ .‬این رابطه‪ Ai ،‬را به اهمراه کلید ‪ K‬و ردس‌هی‬
‫ردس‌هی ‪ c‬ذخیره م س‌‬
‫یگیرد‪.‬‬
‫کلید ‪ C1‬دربرم س‌‬
‫یتواند تعدادی از ‪Ri,c‬اها را ببیند‪.‬‬
‫یک عامل بسته به ردس‌هی خود م س‌‬
‫پیادک‌هسازی در عمل‬
‫●‬
‫برای ایجاد نمونس‌های که عامل در ردس‌هی ‪ c‬از رابطس‌هی ‪ R‬در یک حالت‬
‫یبیند‪:‬‬
‫م س‌‬
‫●‬
‫برای اهر ردس‌هی ‪ ،c‬از روی رابطس‌هاهای ‪ R1,c‬که شامل ‪ A1‬اهستند‪،‬‬
‫یشود‪:‬‬
‫رابطس‌هاهای زیر ساخته م س‌‬
‫)‪P1,c = (A1, C1=c‬‬
‫●‬
‫برای اهر ردس‌هی ‪ c‬و اهر مقدار ‪ i‬از روی رابطس‌هاهای ‪ Ri,c‬که شامل ‪K,‬‬
‫یشود‪:‬‬
‫‪ C1‬و ‪ Ai‬اهستند‪ ،‬رابطس‌هاهای زیر ساخته م س‌‬
‫)‪Pi,c = (K, C1, Ai, Ci=c‬‬
‫‪35‬‬
‫–‬
‫–‬
‫پیادک‌هسازی در عمل‬
‫●‬
‫●‬
‫یکند که ‪ d<=c‬باشد‪.‬‬
‫عامل در ردس‌هی ‪ c‬تنها ‪Pi,d‬اهایی را مشااهده م س‌‬
‫یداهد که عامل برای‬
‫لاهایی را نشان م س‌‬
‫اجتماع اهمس‌هی این رابطس‌هاها‪ ،‬تاپ س‌‬
‫یکند‪.‬‬
‫صفت ‪ Ai‬مشااهده م س‌‬
‫‪over all d <= c‬‬
‫●‬
‫پیوند خارجی )‪ (Left Outer Join‬اهمس‌هی ‪Pi‬اها نمونس‌هی قابل رویت‬
‫یکند‪.‬‬
‫از ‪ R‬در ردس‌هی ‪ c‬را ایجاد م س‌‬
‫)‪⟕ Pn‬‬
‫‪36‬‬
‫‪Pi = ∪ Pi,d‬‬
‫●‬
‫… ⟕ ‪R = (P1 ⟕ P2 ⟕ P3‬‬
‫●‬
‫مسازی‬
‫تفسیر درج و بک‌هاهنگا ک‌‬
‫●‬
‫●‬
‫درج یک تاپل جدید در رابطس‌هی چندسطحی منجر به درج یک تاپل جدید‬
‫یشود‪.‬‬
‫کسطحی ‪ Ri,c‬م س‌‬
‫در اهر یک از رابطس‌هاهای ت س‌‬
‫بس‌هاهنگاس‌مسازی یک صفت از یک تاپل که منجر به چندنمونس‌هسازی سطح‬
‫یشود که‪:‬‬
‫یشود‪ ،‬باعث م س‌‬
‫صفت م س‌‬
‫●‬
‫●‬
‫‪37‬‬
‫در رابطس‌هی ‪ Ri,c‬مربوط به ردس‌هی آن صفت‪ ،‬یک تاپل جدید درج شود‪.‬‬
‫لاهای دیده‬
‫این تاپل جدید در پیوند خارجی با دیگر رابطس‌هاها‪ ،‬به تعداد تاپ س‌‬
‫یشدس‌هی تاپل مربوطه‪ ،‬تاپل جدید ایجاد‬
‫تاهای چندنمونس‌هساز س‌‬
‫شده در حال س‌‬
‫یداهد )برقراری وابستگی چندمقداری(‪.‬‬
‫کرده و به کاربر نمایش م س‌‬
‫مسازی‬
‫تفسیر درج و بک‌هاهنگا ک‌‬
‫●‬
‫●‬
‫‪38‬‬
‫با این شیوه اهر درج یا بس‌هاهنگاس‌مسازی با کمترین سربار زمانی و بدون‬
‫افزونگی در ذخیرس‌هی دادس‌هاها صورت گرفته‪،‬‬
‫یکه خصیصس‌هاهای مطرح شده در این ارایه‪ ،‬در نمونس‌های که کاربر‬
‫درحال س‌‬
‫یشوند‪.‬‬
‫یکند‪ ،‬رعایت م س‌‬
‫در ردس‌هی ‪ c‬مشااهده م س‌‬
‫اکنترل دسترسی اختیاری و ‪TCB‬‬
‫●‬
‫●‬
‫●‬
‫‪39‬‬
‫وجود دسترسی ‪ grant‬اجازس‌هی اعطای اهمس‌هی مجوزاها به جز خود‬
‫یکند‪،‬‬
‫‪ grant‬و ‪ give_grant‬را صادر م س‌‬
‫وجود دسترسی ‪ give_grant‬اجازس‌هی اعطای اهمس‌هی مجوزاها از جمله‬
‫یکند‪.‬‬
‫خود ‪ grant‬و ‪ give_grant‬را فرااهم م س‌‬
‫اگر کاربر به طور مستقیم از یک دسترسی خاص منع شود‪ ،‬اهمس‌هی‬
‫مجوزاهای شخصی یا مجوزاهایی که از طریق عضویت در یک گروه‬
‫یشود‪.‬‬
‫یاثر م س‌‬
‫به ارث برده‪ ،‬ب س‌‬
‫اکنترل دسترسی اختیاری و ‪TCB‬‬
‫●‬
‫●‬
‫‪40‬‬
‫اگر برای دسترسی کاربری به یک داده‪ ،‬قاعدس‌های بیان نشده باشد و این‬
‫کاربر عضو گرواهی است که دسترسی به آن برای گروه منع نگردیده‬
‫یتواند اهمس‌هی مجوزاهای دسترسی گروه به‬
‫باشد‪ ،‬در آن صورت وی م س‌‬
‫آن داده را به ارث ببرد‪.‬‬
‫اگر کاربری اهیچ اجازس‌هی منفی مشخصی بر روی یک شی نداشته‪ ،‬ولی‬
‫تاهای دسترسی آن شی‬
‫اجازس‌هی مثبت مشخصی برای برخی از حال س‌‬
‫را داشته باشد‪ ،‬در آن صورت به وی فقط این مجوزاها اعطا شده و‬
‫اهیچ مجوز دیگری از طریق عضویت وی در یک گروه )مجوز‬
‫یشود‪.‬‬
‫گرواهی( به او داده نم س‌‬
‫اکنترل دسترسی اختیاری و ‪TCB‬‬
‫●‬
‫●‬
‫‪41‬‬
‫اهر کاربر باید علوه بر اینکه بنابر کنترل دسترسی اجباری امکان‬
‫یکند‪ ،‬بنابر قاعدس‌هاهای کنترل‬
‫دسترسی به یک داده را پیدا م س‌‬
‫ثبری(‬
‫دسترسی اختیاری اهم به طور صریح )یا مستقیم یا با ار س‌‬
‫اجازس‌هی دسترسی را اخذ کند‪.‬‬
‫یتواند‬
‫مگرنه با وجود دسترسی بر مبنای ردس‌هاهای امنیتی‪ ،‬اهمچنان نم س‌‬
‫با دادس‌هاها کار کند‪.‬‬
‫عاها‬
‌‫مرج ک‬
[Denning]
D. E. Denning, T. F. Lunt, R. R. Schell, M. Heckman,
and W. R. Shockley, “A multilevel relational data
model”, SRI International, Computer Science
Laboratory, 1987.
[Elmasri]
R. A. Elmasri and S. B. Navathe, “Fundamentals of
Database Systems”, Addison-Wesley, 6th Edition, 2011.
[Lunt]
T. F. Lunt, D. E. Denning, R. R. Schell, M. Heckman,
and W. R. Shockley, “The SeaView security model”,
Software Engineering, IEEE Transactions on, 1990.
[Silber]
A. Silberschatz and S. Korth, “Database System
Concepts”, McGraw-Hill, 5th Edition, 2006.
42