လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> ဆက်သွယ်မှု () ခွင့်ပြုချက်မလုံလောက်ပြီးနောက်စားပွဲကိုမသုံးနိုင်သည့်ပြ a နာတစ်ခုဖြစ်သည်

ဆက်သွယ်မှု () ခွင့်ပြုချက်မလုံလောက်ပြီးနောက်စားပွဲကိုမသုံးနိုင်သည့်ပြ a နာတစ်ခုဖြစ်သည်

M66 2025-05-23

PHP, Connect () function ကို သုံး. ဒေတာဘေ့စ်ကိုဆက်သွယ်သည့်အခါ (ဥပမာ MySQLI_Connect) သို့မဟုတ် PDE ဆက်သွယ်မှုကဲ့သို့သော) သည်အောင်မြင်စွာပြန်လည်ရောက်ရှိလာသောအခါ Database ဆာဗာသည် connection တောင်းဆိုမှုကိုအောင်မြင်စွာလက်ခံခဲ့သည်။ သို့သော်ဆက်သွယ်မှုသည်အောင်မြင်မှုရှိပါကပင်ခွင့်ပြုချက်မလုံလောက်ခြင်းကြောင့်ဒေတာဘေ့စ်စားပွဲကိုမ 0 င်နိုင်ပါ။ ဒေတာဘေ့စ်ခွင့်ပြုချက်ပြ issues နာများကို debing လုပ်သည့်အခါဤသည်သည် developer များစွာအတွက်ဘုံစိတ်ရှုပ်ထွေးမှုများဖြစ်သည်။

ဤဆောင်းပါးသည်ဤအခြေအနေ၏အကြောင်းရင်းများကိုအသေးစိတ်လေ့လာပြီးခွင့်ပြုချက်မလုံလောက်မှုပြ the နာကိုဖြေရှင်းရန်နှင့်ဖြေရှင်းရန်အကြံဥာဏ်များပေးလိမ့်မည်။


1 ။ အောင်မြင်စွာဆက်သွယ်မှုကိုအောင်မြင်စွာဝင်ရောက်ခွင့်

Connect () function သည်ဒေတာဘေ့စ်ဆာဗာနှင့်ဆက်သွယ်မှုကိုတည်ဆောက်ရန်သာတာဝန်ရှိသည်။ အသုံးပြုသူအမည်နှင့်စကားဝှက်သည်မှန်ကန်မှုရှိ,

သို့သော်ဒေတာဘေ့စ် 0 င်ရောက်မှုကိုခွင့်ပြုချက်ကိုထိန်းချုပ်ခြင်းသည်အလွန်ကောင်းသည်။

  • ဤအသုံးပြုသူသည်ဒေတာဘေ့စ်တစ်ခုကိုဝင်ရောက်ရန်ခွင့်ပြုချက်ရှိပါသလား

  • စားပွဲတစ်ခုဖတ်ရန်, ရေးရန်သို့မဟုတ်ပြုပြင်ရန်ခွင့်ပြုချက်ရှိပါသလား

  • သတ်သတ်မှတ်မှတ်စစ်ဆင်ရေးများပြုလုပ်ရန်ခွင့်ပြုချက်ရှိပါသလား (ဥပမာသိုလှောင်ထားသည့်လုပ်ထုံးလုပ်နည်းများ)

ထို့ကြောင့်အောင်မြင်သောဆက်သွယ်မှုသည်ပထမခြေလှမ်းသာဖြစ်ပြီးဒေတာဘေ့စ်ဇယားများတွင်နောက်ဆက်တွဲစစ်ဆင်ရေးသည်သက်ဆိုင်ရာခွင့်ပြုချက်အကူအညီများလိုအပ်သည်။


2 ။ ဘုံဇာတ်လမ်းခွဲခြမ်းစိတ်ဖြာ

မြင်ကွင်း

 <?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'

3 ။ ခွင့်ပြုချက်မရှိခြင်းသည်အဘယ်ကြောင့်ဖြစ်ပေါ်သနည်း။

  1. ဒေတာဘေ့စ်အသုံးပြုသူခွင့်ပြုချက်မလုံလောက်ပါ ဆက်သွယ်မှုအတွက်အသုံးပြုသောအသုံးပြုသူအကောင့်ခွင့်ပြုချက်များသည်မပြည့်စုံပါ။ အကောင့်ကိုဆာဗာသို့ချိတ်ဆက်ရန် (သို့) ဒေတာဘေ့စ်အချို့ကိုဝင်ရောက်ရန်သာခွင့်ပြုထားသည်။

  2. ဒေတာဘေ့စ်ခွင့်ပြုချက် settings မြင့်မားသော granularity ဖြစ်ကြသည် ဒေတာဘေ့စ်ခွင့်ပြုချက်များသည်များသောအားဖြင့်ဒေတာဘေ့စ်များ, စားပွဲများ, ကော်လံများနှင့်စစ်ဆင်ရေးအဆင့်များ၌ပင်တာဝန်ပေးအပ်လေ့ရှိသည်။ အောင်မြင်သောဆက်သွယ်မှုသည်မည်သူမည်ဝါဖြစ်ကြောင်းအတည်ပြုရန်သာဖြစ်သည်။ အမှန်တကယ်လုပ်ဆောင်မှုသည်တိကျသောအရာဝတ်ထုအပေါ်အသုံးပြုသူ၏ခွင့်ပြုချက်ပေါ်တွင်မူတည်သည်။

  3. အသုံးပြုသူများသည်အသုံးပြုသူများသည် operating အသုံးပြုသူများနှင့်ကိုက်ညီမှုမရှိပါ တခါတရံဒေတာဘေ့စ်နှင့်ဆက်သွယ်မှုသည်အောင်မြင်သော်လည်းစုံစမ်းမှု၏အမှန်တကယ်မည်သူမည်ဝါဖြစ်ကြောင်းမဖော်ထုတ်နိုင်သည့်လက်ရှိအခြေအနေမဟုတ်ပါ။


4 ။ ခွင့်ပြုချက်ပြ issues နာများကိုဖြေရှင်းရန်နှင့်ဖြေရှင်းနည်းကိုဖြေရှင်းနည်း

4.1 လက်ရှိအသုံးပြုသူခွင့်ပြုချက်ကိုစစ်ဆေးပါ

အသုံးပြုသူခွင့်ပြုချက်ကိုကြည့်ရှုရန်ဒေတာဘေ့စ်စီမံခန့်ခွဲမှုကိရိယာသို့မဟုတ် command line ကိုသုံးပါ။

 SHOW GRANTS FOR 'username'@'host';

အသုံးပြုသူသည်ပစ်မှတ်ဒေတာဘေ့စ်နှင့်စားပွဲများအတွက်မှန်ကန်သောခွင့်ပြုချက်ရှိကြောင်းအတည်ပြုပါ။

 GRANT SELECT, INSERT, UPDATE ON database.sensitive_table TO 'username'@'host';
FLUSH PRIVILEGES;

4.2 ဆက်သွယ်မှုအချက်အလက်ကိုအတည်ပြုပါ

username အတွက်အသုံးပြုသောအသုံးပြုသူအမည်, လျှို့ဝှက်နံပါတ်နှင့် host သည်မှားယွင်းသောအကောင့်သို့မဟုတ်ဒေတာဘေ့စ်ကိုမဆက်သွယ်ပါနှင့်။

4.3 ခွင့်ပြုချက်ကိုညှိပါ

လိုအပ်ချက်များအရသုံးစွဲသူသည်အလွန်အကျွံခွင့်ပြုချက်ကိုရှောင်ရှားရန်သက်ဆိုင်ရာခွင့်ပြုချက်များကိုသတ်မှတ်ထားသည်။

4.4 စမ်းသပ်မှုခွင့်ပြုချက်

ဇယားကို 0 င်ရောက်နိုင်သည်ကိုအတည်ပြုရန်ဒေတာဘေ့စ်စီမံခန့်ခွဲရေးကိရိယာတွင်တူညီသောအကောင့်စစ်ဆေးခွင့်ပြုချက်ကိုသုံးပါ။


5 ။ Code ဥပမာ

PHP နှင့်အတူဒေတာဘေ့စ်နှင့်ချိတ်ဆက်ပြီးခွင့်ပြုချက်အမှားများကိုကိုင်တွယ်ရန် MySQLI ကို အသုံးပြု. MySQLI ကို အသုံးပြု. ဥပမာတစ်ခုမှာဥပမာတစ်ခုဖြစ်သည်။