PHP, Connect () function ကို သုံး. ဒေတာဘေ့စ်ကိုဆက်သွယ်သည့်အခါ (ဥပမာ MySQLI_Connect) သို့မဟုတ် PDE ဆက်သွယ်မှုကဲ့သို့သော) သည်အောင်မြင်စွာပြန်လည်ရောက်ရှိလာသောအခါ Database ဆာဗာသည် connection တောင်းဆိုမှုကိုအောင်မြင်စွာလက်ခံခဲ့သည်။ သို့သော်ဆက်သွယ်မှုသည်အောင်မြင်မှုရှိပါကပင်ခွင့်ပြုချက်မလုံလောက်ခြင်းကြောင့်ဒေတာဘေ့စ်စားပွဲကိုမ 0 င်နိုင်ပါ။ ဒေတာဘေ့စ်ခွင့်ပြုချက်ပြ issues နာများကို debing လုပ်သည့်အခါဤသည်သည် developer များစွာအတွက်ဘုံစိတ်ရှုပ်ထွေးမှုများဖြစ်သည်။
ဤဆောင်းပါးသည်ဤအခြေအနေ၏အကြောင်းရင်းများကိုအသေးစိတ်လေ့လာပြီးခွင့်ပြုချက်မလုံလောက်မှုပြ the နာကိုဖြေရှင်းရန်နှင့်ဖြေရှင်းရန်အကြံဥာဏ်များပေးလိမ့်မည်။
Connect () function သည်ဒေတာဘေ့စ်ဆာဗာနှင့်ဆက်သွယ်မှုကိုတည်ဆောက်ရန်သာတာဝန်ရှိသည်။ အသုံးပြုသူအမည်နှင့်စကားဝှက်သည်မှန်ကန်မှုရှိ,
သို့သော်ဒေတာဘေ့စ် 0 င်ရောက်မှုကိုခွင့်ပြုချက်ကိုထိန်းချုပ်ခြင်းသည်အလွန်ကောင်းသည်။
ဤအသုံးပြုသူသည်ဒေတာဘေ့စ်တစ်ခုကိုဝင်ရောက်ရန်ခွင့်ပြုချက်ရှိပါသလား
စားပွဲတစ်ခုဖတ်ရန်, ရေးရန်သို့မဟုတ်ပြုပြင်ရန်ခွင့်ပြုချက်ရှိပါသလား
သတ်သတ်မှတ်မှတ်စစ်ဆင်ရေးများပြုလုပ်ရန်ခွင့်ပြုချက်ရှိပါသလား (ဥပမာသိုလှောင်ထားသည့်လုပ်ထုံးလုပ်နည်းများ)
ထို့ကြောင့်အောင်မြင်သောဆက်သွယ်မှုသည်ပထမခြေလှမ်းသာဖြစ်ပြီးဒေတာဘေ့စ်ဇယားများတွင်နောက်ဆက်တွဲစစ်ဆင်ရေးသည်သက်ဆိုင်ရာခွင့်ပြုချက်အကူအညီများလိုအပ်သည်။
<?php
$mysqli = new mysqli("m66.net", "username", "password", "database");
// အောင်မြင်စွာဆက်သွယ်မှု
if ($mysqli->connect_errno) {
echo "ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $mysqli->connect_error;
exit();
}
// စားပွဲပေါ်မှာဝင်ရောက်ဖို့ကြိုးစားပါ
$result = $mysqli->query("SELECT * FROM sensitive_table");
if (!$result) {
echo "စုံစမ်းမှုမအောင်မြင်ပါ,အမှားသတင်းစကား:" . $mysqli->error;
}
?>
အထက်ဖော်ပြပါကုဒ်တွင် Connect () သည် အမှားတစ်ခုသတင်းကိုမဖော်ပြနိုင်သော်လည်းရှာဖွေမှုကိုအကောင်အထည်ဖော်သည့်အခါပေါ်လာနိုင်သည် -
စုံစမ်းမှုမအောင်မြင်ပါ,အမှားသတင်းစကား:Access denied for user 'username'@'host' to database 'database'
သို့မဟုတ်:
စုံစမ်းမှုမအောင်မြင်ပါ,အမှားသတင်းစကား:SELECT command denied to user 'username'@'host' for table 'sensitive_table'
ဒေတာဘေ့စ်အသုံးပြုသူခွင့်ပြုချက်မလုံလောက်ပါ ဆက်သွယ်မှုအတွက်အသုံးပြုသောအသုံးပြုသူအကောင့်ခွင့်ပြုချက်များသည်မပြည့်စုံပါ။ အကောင့်ကိုဆာဗာသို့ချိတ်ဆက်ရန် (သို့) ဒေတာဘေ့စ်အချို့ကိုဝင်ရောက်ရန်သာခွင့်ပြုထားသည်။
ဒေတာဘေ့စ်ခွင့်ပြုချက် settings မြင့်မားသော granularity ဖြစ်ကြသည် ဒေတာဘေ့စ်ခွင့်ပြုချက်များသည်များသောအားဖြင့်ဒေတာဘေ့စ်များ, စားပွဲများ, ကော်လံများနှင့်စစ်ဆင်ရေးအဆင့်များ၌ပင်တာဝန်ပေးအပ်လေ့ရှိသည်။ အောင်မြင်သောဆက်သွယ်မှုသည်မည်သူမည်ဝါဖြစ်ကြောင်းအတည်ပြုရန်သာဖြစ်သည်။ အမှန်တကယ်လုပ်ဆောင်မှုသည်တိကျသောအရာဝတ်ထုအပေါ်အသုံးပြုသူ၏ခွင့်ပြုချက်ပေါ်တွင်မူတည်သည်။
အသုံးပြုသူများသည်အသုံးပြုသူများသည် operating အသုံးပြုသူများနှင့်ကိုက်ညီမှုမရှိပါ တခါတရံဒေတာဘေ့စ်နှင့်ဆက်သွယ်မှုသည်အောင်မြင်သော်လည်းစုံစမ်းမှု၏အမှန်တကယ်မည်သူမည်ဝါဖြစ်ကြောင်းမဖော်ထုတ်နိုင်သည့်လက်ရှိအခြေအနေမဟုတ်ပါ။
အသုံးပြုသူခွင့်ပြုချက်ကိုကြည့်ရှုရန်ဒေတာဘေ့စ်စီမံခန့်ခွဲမှုကိရိယာသို့မဟုတ် command line ကိုသုံးပါ။
SHOW GRANTS FOR 'username'@'host';
အသုံးပြုသူသည်ပစ်မှတ်ဒေတာဘေ့စ်နှင့်စားပွဲများအတွက်မှန်ကန်သောခွင့်ပြုချက်ရှိကြောင်းအတည်ပြုပါ။
GRANT SELECT, INSERT, UPDATE ON database.sensitive_table TO 'username'@'host';
FLUSH PRIVILEGES;
username အတွက်အသုံးပြုသောအသုံးပြုသူအမည်, လျှို့ဝှက်နံပါတ်နှင့် host သည်မှားယွင်းသောအကောင့်သို့မဟုတ်ဒေတာဘေ့စ်ကိုမဆက်သွယ်ပါနှင့်။
လိုအပ်ချက်များအရသုံးစွဲသူသည်အလွန်အကျွံခွင့်ပြုချက်ကိုရှောင်ရှားရန်သက်ဆိုင်ရာခွင့်ပြုချက်များကိုသတ်မှတ်ထားသည်။
ဇယားကို 0 င်ရောက်နိုင်သည်ကိုအတည်ပြုရန်ဒေတာဘေ့စ်စီမံခန့်ခွဲရေးကိရိယာတွင်တူညီသောအကောင့်စစ်ဆေးခွင့်ပြုချက်ကိုသုံးပါ။
PHP နှင့်အတူဒေတာဘေ့စ်နှင့်ချိတ်ဆက်ပြီးခွင့်ပြုချက်အမှားများကိုကိုင်တွယ်ရန် MySQLI ကို အသုံးပြု. MySQLI ကို အသုံးပြု. ဥပမာတစ်ခုမှာဥပမာတစ်ခုဖြစ်သည်။