0 က်ဘ်ဆိုက်တစ်ခုသို့မဟုတ်လျှောက်လွှာကိုတီထွင်သောအခါလုံခြုံရေးသည်အရေးကြီးသောအချက်ဖြစ်သည်။ အသုံးပြုသူများအတွက်သင့်တော်သောခွင့်ပြုချက်များသတ်မှတ်ရန်နှင့်တိကျသောခွင့်ပြုချက်ဖြင့်အသုံးပြုသူများသည်သက်ဆိုင်ရာလုပ်ဆောင်ချက်များနှင့်အရင်းအမြစ်များကို 0 င်ရောက်နိုင်ရန်သေချာစေနိုင်ကြောင်းသေချာစေရန်တည်ဆောက်သူတိုင်းသည် developer တိုင်းလိုအပ်သည်။ အခန်းကဏ် -based ခွင့်ပြုချက်ထိန်းချုပ်မှု (RBAC) သည်သာမန်ခွင့်ပြုချက်စီမံခန့်ခွဲမှုနည်းလမ်းဖြစ်သည်။ ဤဆောင်းပါးသည်အခန်းကဏ် based authentication ကိုထိန်းချုပ်ရန် PHP ကိုမည်သို့အသုံးပြုရမည်ကိုလမ်းညွှန်ပေးပါလိမ့်မည်။
အခန်းကဏ် ector အခြေပြုခွင့်ပြုချက်ထိန်းချုပ်မှုကိုအကောင်အထည်ဖော်ခြင်းမပြုမီကျွန်ုပ်တို့သည် "အခန်းကဏ်" နှင့် "ခွင့်ပြုချက်များ၏အယူအဆများကိုရှင်းလင်းရန်လိုသည်။
အခန်းကဏ် system သည်အသုံးပြုသူ၏မည်သူမည်ဝါဖြစ်ကြောင်းကိုယ်စားပြုသည်။ ဥပမာအားဖြင့် "administrator", "သာမန်သုံးစွဲသူ" စသည်ဖြင့်အသုံးပြုသူလုပ်ဆောင်နိုင်သည့်အရာများကိုကန့်သတ်ရန်အများအားဖြင့်ကွဲပြားခြားနားသောခွင့်ပြုချက်များပေးသည်။
ခွင့်ပြုချက်များသည် system-defined system ကို သတ်မှတ်. မည်သည့်အရင်းအမြစ်သည်မည်သည့်အရင်းအမြစ်များကိုလုပ်ဆောင်နိုင်သည်သို့မဟုတ်မည်သည့်အရင်းအမြစ်များကိုလုပ်ဆောင်နိုင်မည်ကိုဆုံးဖြတ်သည်။ ခွင့်ပြုချက်များတွင် "ဖတ်ရန်အချက်အလက်", "Modify Data" သို့မဟုတ် "ဒေတာများကိုဖျက်ခြင်း" ပါဝင်နိုင်သည်။
အခန်းကဏ် and များနှင့်ခွင့်ပြုချက်များ၏ပေါင်းစပ်ခြင်းအားဖြင့်အသုံးပြုသူများသည်စနစ်၏စစ်ဆင်ရေးခွင့်ပြုချက်ကိုထိရောက်စွာထိန်းချုပ်နိုင်သည်။
အခန်းကဏ် beared ်ဌာန်းထားသောခွင့်ပြုချက်ထိန်းချုပ်မှုကိုအကောင်အထည်ဖော်ရန်အတွက်ကျွန်ုပ်တို့သည်များသောအားဖြင့်ဒေတာဘေ့စ်တွင်အခန်းကဏ် and နှင့်ခွင့်ပြုချက်အချက်အလက်များကိုသိမ်းဆည်းရန်လိုအပ်သည်။ ကျွန်ုပ်တို့သည်စားပွဲ 2 ခုဖန်တီးနိုင်သည်။ စတိုးဆိုင်များသည်အခန်းကဏ် in ဆိုင်ရာအချက်အလက်များနှင့်အခြားသိုလှောင်မှုများသည်ခွင့်ပြုချက်အချက်အလက်များဖြစ်သည်။ အခန်းကဏ် and နှင့်ခွင့်ပြုချက်ဇယားများကိုဖန်တီးပေးသောဥပမာ SQL ထုတ်ပြန်ချက်တစ်ခုမှာ -
စားပွဲအခန်းကဏ် create ကိုဖန်တီးပါ ( ID Int Auto_incrent မူလတန်းသော့, NARCHAR (255) NULL NAW NULL );
ဇယားခွင့်ပြုချက်ဖန်တီးပါ ( ID Int Auto_incrent မူလတန်းသော့, NARCHAR (255) NULL NAW NULL );
အခန်းကဏ် into မှအခန်းကဏ် in တွင် "NAME" ကို "NAME" အကွက်ကိုသုံးပြီးအခန်းကဏ် name ကိုသိမ်းပိုက်ထားတဲ့နေရာကိုသုံးပြီးခွင့်ပြုချက်နာမည်ကိုသိမ်းထားဖို့ "နာမည်" အကွက်ထဲမှာ "name" ကွက်ကိုသုံးတယ်။
အမှန်တကယ် application များအရသင်သည်အခန်းကဏ် and များနှင့်ခွင့်ပြုချက်များကိုဖန်တီးရန်သင်ပထမ ဦး ဆုံးလိုအပ်ပြီးအသုံးပြုသူအားအခန်းကဏ် and နှင့်ခွင့်ပြုချက်များကိုသတ်မှတ်ရန်လိုအပ်သည်။
ဥပမာအားဖြင့်ကျွန်ုပ်တို့သည်အောက်ပါ SQL ထုတ်ပြန်ချက်များကို အသုံးပြု. အခန်းကဏ် takes များနှင့်ခွင့်ပြုချက်ဇယားများထဲသို့ထည့်သွင်းနိုင်သည်။
အခန်းကဏ် (အမည်) တန်ဖိုးများ ('admin') ထဲသို့ထည့်ပါ။ အခန်းကဏ် in (အမည်) တန်ဖိုးများ ('user') သို့ထည့်သွင်းပါ။
ခွင့်ပြုချက် (အမည်) တန်ဖိုးများ ('Create') သို့ထည့်သွင်းပါ။ ခွင့်ပြုချက်များ ('Read') ခွင့်ပြုချက်များ (အမည်) တန်ဖိုးများကိုထည့်ပါ။ ခွင့်ပြုချက်များ ('update' values ('update') ထဲသို့ထည့်ပါ။ ခွင့်ပြုချက် (အမည်) တန်ဖိုးများ ('Delete') ကိုထည့်ပါ။
ထို့နောက်အသုံးပြုသူအားအခန်းကဏ် assign တစ်ခုသတ်မှတ်ရန်လိုအပ်သည်။ အသုံးပြုသူအချက်အလက်များကိုအသုံးပြုသူဇယားတစ်ခုဖွင့ ်. အခန်းကဏ် id ကိုတွဲဖက်ခြင်းဖြင့်သိမ်းဆည်းထားနိုင်သည်။ အသုံးပြုသူဇယားများကိုဖန်တီးခြင်းအတွက် SQL ၏ဥပမာတစ်ခုမှာ -
Table အသုံးပြုသူများကိုဖန်တီးပါ ( ID Int Auto_incrent မူလတန်းသော့, Username varchar (255) Password Varchar (255) NURLE မဟုတ်ပါ။ role_id int မဟုတ် NULL );
ထို့နောက်အောက်ပါဖော်ပြချက်ကို အသုံးပြု. အသုံးပြုသူအချက်အလက်များကိုထည့်ပါ။
အသုံးပြုသူများ ('admin_password', 'admin_password', 1), သုံးစွဲသူများ ('User_Pass_ass', 'user_password', 2) တန်ဖိုးများကိုအသုံးပြုသူများသို့ထည့်ပါ။
PHP တွင်အသုံးပြုသူ၏ login status နှင့်အခန်းကဏ် save ၏အခန်းကဏ် save ကိုသိမ်းဆည်းရန် session ကိုသုံးနိုင်သည်။ အသုံးပြုသူမှတ်တမ်းများအပြီးများတွင်သူတို့၏အခန်းကဏ် id တွင်သူတို့၏အခန်းကဏ် id ကိုသိမ်းဆည်းထားပြီး, အခန်းကဏ် id ကိုအကဲဖြတ်ခြင်းဖြင့်ခွင့်ပြုချက်ထိန်းချုပ်မှုကိုအသုံးပြုပါ။
အသုံးပြုသူရဲ့ login status ကိုစစ်ဆေးတဲ့ PHP code signe php code signs: 4 င်း၏အခန်းကဏ် and နှင့်ခွင့်ပြုချက်များ -
// session ကိုစတင်ပါ Session_Start (); // အသုံးပြုသူသည် 0 င်ရောက်လျှင် (! is _ _ session ['session [' session])) ECHO "log in မ 0 င်ပါ"; ထွက်ပေါက်; } // အသုံးပြုသူအခန်းကဏ် ID ကိုရယူပါ $ role_id = $ _session ['_SIVE's]; // လျှင် ($ role_id == 1) လျှင်, ပဲ့တင်သံ "အုပ်ချုပ်ရေးမှူး, ခွင့်ပြုချက်အားလုံးကိုရယူပါ"; } အခြား ($ role_id == 2) { ECHO "သာမန်သုံးစွဲသူ, အချို့သောခွင့်ပြုချက်များနှင့်အတူ"; } အခြား ပဲ့တင်သံ "မသိသောအခန်းကဏ်"; ထွက်ပေါက်; } // အသုံးပြုသူခွင့်ပြုချက်ကိုစစ်ဆေးပါ $ ခွင့်ပြုချက် = $ _GET ['ခွင့်ပြုချက်']; အကယ်. ($ role_id == 1. = ($ role_id == = &&& mary _& in_ on_> on_array (juday))) ECHO "{$ ခွင့်ပြုချက်} ခွင့်ပြုချက်"; } အခြား ECHO "{$ ခွင့်ပြုချက်ခွင့်ပြုချက်"; ထွက်ပေါက်; }
ဤကုဒ်တွင်အသုံးပြုသူသည်လော့ဂ်အင်လုပ်ခြင်းရှိမရှိကို ဦး စွာစစ်ဆေးပြီးသူသည်သုံးစွဲသူ၏အခန်းကဏ် id ကိုအခြေခံသည့်ခွင့်ပြုချက်များကိုဆုံးဖြတ်ပါ။ အမှန်တကယ်လိုအပ်ချက်များအပေါ် အခြေခံ. အခန်းကဏ် and နှင့်ခွင့်ပြုချက်များ၏စီရင်ချက်ဆိုင်ရာယုတ္တိဗေဒကိုသင်စိတ်ကြိုက်ပြုလုပ်နိုင်သည်။
အခန်းကဏ် -based authentication ကိုထိန်းချုပ်မှု (RBAC) သည်အလွန်ထိရောက်သောခွင့်ပြုချက်စီမံခန့်ခွဲမှုနည်းလမ်းဖြစ်သည်။ ဒေတာဘေ့စ်တွင်အခန်းကဏ် and များနှင့်ခွင့်ပြုချက်များကိုသိမ်းဆည်းခြင်းဖြင့်အသုံးပြုသူ၏အခန်းကဏ် and များနှင့်ခွင့်ပြုချက်များကိုဆုံးဖြတ်ရန် PHP code ကိုပေါင်းစပ်ခြင်းအားဖြင့်အသုံးပြုသူတစ် ဦး ချင်းစီသည်မိမိတို့၏ခွင့်ပြုချက်များတွင် 0 င်ရောက်ခြင်းနှင့်လုပ်ဆောင်ခြင်းကိုသာရယူနိုင်သည်။ ဤချဉ်းကပ်နည်းသည်ဖွံ့ဖြိုးတိုးတက်မှုကာလအတွင်းစနစ်၏လုံခြုံရေးနှင့်စီမံခန့်ခွဲမှုများကိုမြှင့်တင်ပေးသည်။