نام درس :امنیت پایگاه داده نیمسال دوم 92-91 مدرس :دکتر رسول جلیلی صفحه 1 بسمه تعالی پروژه عملیاتی موعد تحویل19/4/02 : عنوان پروژه: آشنایی با مدل کنترل دسترسی سمپاد PostgreSQLدر محیط عملیاتی لطفاً به نکات زیر توجه فرمایید: oپاسخهای خود را حداکثر تا 19/4/02به آدرس Mahdi1001@gmail.comبا عنوان ] [DBSEC:Project_SN1_SN2ارسال نمایید .تأخیر در ارسال پاسخ مشمول کسر نمره خواهد بود. oاین پروژه را میتوانید در غالب گروههای دو نفره ( که بسیار بر گروهی بودن توصیه میشود) انجام دهید. oدر صورت استفاده از مرجعی خاص در گزارش نهایی خود ،به آن ارجاع دهید. 1 توضیحات و تشریح مسئله سیستم مدیریت پایگاه داده (سمپاد) PostgreSQL9یکی از قدرتمندترین سمپادهای متن باز است که در اغلب دانشگاههای معتبر از آن برای تعریف پروژههای آموزشی استفاده میشود .بر این اساس و با توجه به نیازی که به آشنایی دانشجویان درس امنیت پایگاه داده با یک محیط عملیاتی حس میشد این پروژه تعریف گردید .این پروژه شامل فازهای زیر است: .9آشنایی کلی با این سمپاد و نصب و پیکربندی آن .0آشنایی با مدل کنترل دسترسی این سمپاد که در حقیقت یک مدل کنترل دسترسی نقش مبنا است. .3ایجاد پایگاه داده Medical_DBکه در بخش بعدی معرفی میشود. .4تعریف نقشها ،و اعمال خط مشی امنیتی درخواستی پروژه با توجه به دانشی که در فاز دوم کسب کردهاید. .5تست و ارزیابی پرسوجوهای درخواستی .6آماده کردن گزارش و تحویل حضوری 1.1پایگاه داده پایگاه دادهای که در این پروژه مورد استفاده قرار میگیرد دارای جداول زیر است. Patient(pid INTEGER, fname VARCHAR(20), lname VARCHAR(20), age INT, street VARCHAR(20), city ))VARCHAR(10), zipcode VARCHAR(5 ))Disease(pid INTEGER, disease VARCHAR(20 ))Doctor(did INTEGER, fname VARCHAR(20), lname VARCHAR(20), specialty VARCHAR(20 )Sees(pid INTEGER,did INTEGER ))Product(eid INTEGER, description VARCHAR(20 )Stock(eid INTEGER, quantity INTEGER Supplier(sid INTEGER, name VARCHAR(20), street VARCHAR(20), city VARCHAR(10), zipcode ))VARCHAR(5 )Supplies(eid INTEGER,sid INTEGER http://www.postgresql.org/ 1 بسمه تعالی پروژه عملیاتی موعد تحویل19/4/02 : نام درس :امنیت پایگاه داده نیمسال دوم 92-91 مدرس :دکتر رسول جلیلی صفحه 2 1.1توضیحات مربوط به جداول جداول Doctorو Patientاطالعات پزشکان و بیماران را نگهداری میکنند. جدول Diseaseبیماری هر بیمار را نمایش میدهد. جدول Seesنشان میدهد بیماران توسط کدام دکترها معاینه شدهاند. جدول Productاطالعاتی را دربارهی محصوالت پزشکی وسایل جانبی مهیا میکند. جدول ، Stockتعداد هر محصول را نگهداری میکند. در جدول Supplierاطالعاتی دربارهی شرکتهای تامین کننده مواد مورد نیاز بیمارستان ذخیره میشود. جدول Suppliesنشان میدهد هر محصول توسط چه شرکتهایی تولید میشود. در هر جدول ،زیرِ خصیصههایی که کلید اصلی آن جدول را تشکیل میدهند ،خط کشیده شده است .در ضمن کلیدهای خارجی این جداول به صورت زیر است: Disease.pidکلید خارجی برای Patient.pid Sees.pidکلید خارجی برای Patient.pid Sees.didکلید خارجی برای Doctor.did Stock.eidکلید خارجی برای Product.eid Supplies.eidکلید خارجی برای Product.eid Supplies.sidکلید خارجی برای Supplier.sid 1.1نقشهای موجود و طبقهبندی اطالعات نقشها: کاربر عادی )(PublicUser پرستار )(Nurse پزشک )(Physician مدیر بخش پزشکی)(MedicalManager مسئول انبار )(Storekeeper مدیر بیمارستان )(Administrator از طرفی اطالعات بیمارستان به سه دسته کلی تقسیم میشود: .9اطالعات پزشکی :اطالعات دربارهی پزشکان ،بیماران ،و بیماریها .0 اطالعات اجناس :اطالعات محصوالت ،تامین کنندهگان آنها و موجودی محصوالت در بیمارستان. .3اطالعات عمومی :نام پزشکان ،تخصصشان ،بیماریهای قابل درمان در این بیمارستان ،و نام تولید کنندهگان برای بیمارستان. توجه کنید که هیچ کدام از اطالعات بیماران عمومی نیست. بسمه تعالی پروژه عملیاتی موعد تحویل19/4/02 : نام درس :امنیت پایگاه داده نیمسال دوم 92-91 مدرس :دکتر رسول جلیلی صفحه 3 1.1خطمشی کنترل دسترسی خطمشی کنترل دسترسی این پایگاه داده شامل قواعد زیر است: .9افراد عادی فقط حق خواندن اطالعات عمومی را دارند .همه نقشها شامل مدیر ،پزشک ،و پرستار حق دسترسی عمومی را دارند. .0کاربرانی که نقش پزشک را دارند حق خواندن و بروزرسانی روی دادههای پزشکی را دارند ،اما حق ایجاد و حذف آن را ندارند. همچنین پزشکان حق بروزرسانی ،حذف ،و یا ایجاد اطالعات پزشکان را ندارند. .3پرستارها حق خواندن نوشتن ،بروزرسانی ،و حذف روی دادههای پزشکی دارند .آنها نمی توانند اطالعات پزشکان را بروزرسانی، حذف ،و یا ایجاد نمایند. .4کاربران مدیر بخش پزشکی هم حقهای پزشک و هم حقهای پرستاران را دارند .و حق خواندن ،بروزرسانی ،حذف ،و ایجاد اطالعات جدول پزشکان را دارند. .5کاربرانی که نقش مسئول انبار را دارند فقط حق خواندن ،بروزرسانی ،حذف ،و ایجاد اطالعات مربوط به موجودی انبار و تولیدکنندگان را دارد. .6مدیر بیمارستان نیز به همهی حقهای کاربران دیگر را دارد کامل دارد. (راهنمایی :با استفاده از مدل سلسله مراتب زیر باید از وراثت استفاده نمایید). 1.1مسئله اول در قدم اول این پروژه الزم است که موارد زیر انجام شود(توجه کنید که هر دستور SQLای را که اجرا میکنید به همراه هدف اجرای آن و نتیجه آن به صورت کامنت در فایل access-control.sqlذخیره کرده و به همراه گزارش نهایی خود ارسال نمایید) : .9ایجاد پایگاه داده با نام Medical_DBو ایجاد جداول با همان نامها در این پایگاه داده .0ایجاد نقشهای معرفی شده و اعطای و گرفتن مجوزهای بیان شده .1با توجه به اطالعات موجود در جدول زیر ،کاربران درخواستی را ایجاد نمائید. نام درس :امنیت پایگاه داده نیمسال دوم 92-91 مدرس :دکتر رسول جلیلی صفحه 4 بسمه تعالی پروژه عملیاتی موعد تحویل19/4/02 : نام کاربر PUser1 Nurse1 Physician1 SKeeper1 MManager1 Admin1 نقش PublicUser Nurse Physician Storekeeper MedicalManager Administrator پسورد 123456 123456 123456 123456 123456 123456 .4با ورود به سیستم در نقش کاربران ایجاد شده در قدم سوم و طراحی پرسوجوهای مناسب و اجرای آنها نشان دهید که خطمشی کنترل دسترسی را به درستی پیاده کردهاید(ثبت پرسوجوهایی که اجرا میکنید فراموش نشود) 1.1مسئله دوم یک یا چند دید ازپایگاه داده بسازید که فقط اطالعات عمومی را نمایش دهند .حق دسترسی دیدن این دیدها را به نقش ها اعطا نمایید.آیا اعطای دسترسی به همه نقشها بصورت صریح الزم هست؟؟؟ همه دیدهای الزم را بسازید و حق دسترسی متناسب با آن را به نقش آن بدهید .در برخی مواقع ممکن است نیازی به تعریف دید نباشد و شاید الزم باشد که حق دسترسی را به خود جدول بدهید. 1.1مسئله سوم مشکل گمنامی: گاهی الزم است بیمارستان ها اطالعات خود را برای محققین در دسترس آنها قرار دهند .برای اینکار بیمارستانها تنها کدپستی ،سن ،نام بیماری را در اختیار محققین قرار میدهند .یک نقش محقق ) (Researcherایجاد نمایید و یک کاربر آزمایشی ) (Researcher1از آن بسازید .دیدی را با نام DiseaseResearchکه دارای فیلدهایی است که محققین ب ه ان دسترسی دارند ایجاد نمائید و حق دسترسی به ان را به نقش محقق اعطا کنید .همانند مسئله اول با طراحی پرسوجوهای مناسب و ورودی به سیستم با عنوان کاربر Resercher1 بررسی کنید که محققین فقط میتوانند به این اطالعات دسترسی داشته باشد. حال اگر بیمارستان یک انتخابات الکترونیکی برای انتخاب بهترین دکتر و پرستار برگزار نماید ،که در پایگاه دادهی آن مشخصات افراد : نام ،نام خانوادگی ،سن ،کد پستی ذخیره میشود و حق خواندن برای همه باز است .نشان دهید چگونه یک محقق میتواند بیماری افراد را با مشخصاتشان بدست آورد .راه حل شما برای جلوگیری از این مشکل چیست؟؟؟ 1.1نحوهی تحویل پروژه در این پروژه الزم است کارهای انجام شده را در قالب یک مستند شرح دهید و در کنار آن همانطور که توضیح داده شده است فایل access-control.sqlرا که توسط شما تکمیل میشود را ارسال نمایید .برای تحویل حضوری اطالعات پایگاه داده در اختیارتان قرار داده میشود و کارهای انجام شده را بر روی پایگاهداده نمایش میدهید. هر گونه سوال یا ابهام در رابطه با این پروژه را میتوانید از آقای اسحاقی ( (Mahdi1001@gmial.comبپرسید.
© Copyright 2025 Paperzz