MySQL GRANT විධානය පැහැදිලි කරයි: පරිශීලක අවසරයන් ආරක්ෂිතව කළමනාකරණය කිරීමේ ක්‍රමය

目次

1. හැඳින්වීම

MySQL යනු බොහෝ වෙබ් යෙදුම් සහ පද්ධතිවල භාවිතා වන, ඉතා ජනප්‍රිය විවෘත-මූලාශ්‍ර දත්ත ගබඩා කළමනාකරණ පද්ධතියකි. එහි බොහෝ විශේෂාංග අතර, දත්ත ගබඩා පරිශීලක අවසරයන් නිවැරදිව කළමනාකරණය කිරීම ආරක්ෂාව සහ දත්ත අඛණ්ඩතාවය රැක ගැනීමට අතිශය වැදගත් වේ. මෙම ලිපියේ, MySQL හි පරිශීලකයන්ට අවසර ලබා දීමට භාවිතා වන GRANT විධානය පිළිබඳ විස්තරාත්මකව පැහැදිලි කරමු.

GRANT විධානය භාවිතා කිරීමෙන්, ඔබට දත්ත ගබඩාව තුළ විවිධ මෙහෙයුම් අවසරයන් විශේෂිත පරිශීලකයන්ට ලබා දිය හැකිය. මෙම ලිපිය ඔබට GRANT විධානයේ මූලික භාවිතය, ප්‍රායෝගික අවස්ථා, සහ අවසර ඉවත් කිරීමේ ක්‍රම පිළිබඳ පියවරෙන් පියවර මඟ පෙන්වයි. මෙම සංකල්පයන් අවබෝධ කරගැනීමෙන්, ඔබ MySQL ආරක්ෂා සැකසුම් සහ පරිපාලන කාර්යයන් සරල කරගත හැක.

2. MySQL හි අවසර කළමනාකරණයේ වැදගත්කම

අවසර කළමනාකරණයේ අරමුණ

දත්ත ගබඩා අවසර කළමනාකරණය MySQL ආරක්ෂාව ශක්තිමත් කිරීමේ අත්‍යවශ්‍ය භූමිකාවක් ගනී. උදාහරණයක් ලෙස, සියලු පරිශීලකයන්ට සීමා රහිත ප්‍රවේශය ලබා දීම දත්ත විකෘති කිරීම හෝ අනපේක්ෂිත මකා දැමීම වැනි අවදානම් ඇති කරයි. එබැවින්, අවම අවසර සංකල්පය (Principle of Least Privilege) මත පදනම්ව, අවශ්‍ය අවම අවසරයන් සමඟ උපරිම කාර්යක්ෂමතාවය ලබා දීමට, සෑම පරිශීලකයකුටම සුදුසු අවසර ලබා දීම අවශ්‍ය වේ.

අවසර මට්ටම්

MySQL අවසරයන් බහු මට්ටම්වල කළමනාකරණය කරයි. ප්‍රධාන මට්ටම් පහත පරිදි වේ:

  • ගෝලීය අවසරයන් : සම්පූර්ණ MySQL සේවාදායකයට අදාළ වන අවසරයන්. මෙය සියලු දත්ත ගබඩා, වගු, සහ තීරුවලට ප්‍රවේශය ලබා දේ.
  • දත්ත ගබඩා අවසරයන් : නියමිත දත්ත ගබඩාව තුළ පමණක් අදාළ වන අවසරයන්. මෙය එම දත්ත ගබඩාවේ බහු වගු මත මෙහෙයුම් කිරීමට ඉඩ සලසයි.
  • වගු අවසරයන් : දත්ත ගබඩාව තුළ නියමිත වගු සඳහා ලබා දෙන අවසරයන්.
  • තීරු අවසරයන් : වගුවක නියමිත තීරුවලට පමණක් ප්‍රවේශය ලබා දෙන අවසරයන්. මෙය පුද්ගලික දත්ත වැනි සංවේදී තොරතුරු රැක ගැනීමට බහුලව භාවිතා වේ.

සෑම මට්ටමකදීම සුදුසු අවසර සැකසීම ආරක්ෂාව සහ මෙහෙයුම් කාර්යක්ෂමතාව දෙකම වැඩිදියුණු කරයි.

3. GRANT විධානයේ මූලික භාවිතය

GRANT විධානයේ මූලික ව්‍යුහය

GRANT විධානය MySQL පරිශීලකයන්ට අවසර ලබා දීමට භාවිතා වේ. මූලික ව්‍යුහය පහත පරිදි වේ:

GRANT privilege_name ON database_name.table_name TO 'username'@'hostname';

උදාහරණයක් ලෙස, නියමිත පරිශීලකයකුට SELECT අවසරය ලබා දීමට, ඔබ මෙසේ ලියයි:

GRANT SELECT ON mydb.* TO 'user'@'localhost';

මෙම විධානය නියමිත පරිශීලකයාට mydb දත්ත ගබඩාවේ සියලු වගු මත SELECT මෙහෙයුම් කිරීමට ඉඩ සලසයි. localhost කොටස හෝස්ට් නාමය නිරූපනය කරයි, එනම් පරිශීලකයාට දත්ත ගබඩාවට දේශීය යන්ත්‍රයෙන් පමණක් ප්‍රවේශ විය හැක.

අවසර වර්ග

MySQL හි ප්‍රධාන අවසර වර්ග පහත පරිදි වේ:

  • SELECT : දත්ත තෝරා ගැනීම (කියවීම) සඳහා අවසරය.
  • INSERT : දත්ත ඇතුළත් කිරීම සඳහා අවසරය.
  • UPDATE : දත්ත යාවත්කාලීන කිරීම සඳහා අවසරය.
  • DELETE : දත්ත මකා දැමීම සඳහා අවසරය.
  • ALL : සියලු අවසර ලබා දේ (නිර්දේශ නොකෙරේ).

සෑම අවසරයක් සඳහාම සුදුසු පරාසය නියම කිරීම සහ පරිශීලකයාගේ අවශ්‍යතා අනුව සුදුසු අවසර කට්ටලයක් ලබා දීම වැදගත් වේ.

4. ප්‍රායෝගික අවසර සැකසුම් අවස්ථා

බහු පරිශීලකයන්ට විවිධ අවසර ලබා දීමේ ක්‍රමය

පද්ධතිය අනුව, විවිධ අවසර මට්ටම් ඇති බහු පරිශීලකයන් දත්ත ගබඩාවට ප්‍රවේශ විය හැක. උදාහරණයක් ලෙස, පහත අවස්ථා සලකා බලන්න:

  1. දත්ත ගබඩා පරිපාලක (DBA) : සම්පූර්ණ දත්ත ගබඩාවට සම්පූර්ණ අවසර ඇති පරිශීලකයෙකු. ඔබට ALL PRIVILEGES පහත පරිදි ලබා දිය හැක:
    GRANT ALL PRIVILEGES ON mydb.* TO 'admin'@'localhost';
    
  1. සංවර්ධක : වගු මත කියවීම සහ ලිවීමේ අවසර ඇති නමුත් සම්පූර්ණ දත්ත ගබඩා පරිපාලන අවසර නොමැති පරිශීලකයෙකු.
    GRANT SELECT, INSERT, UPDATE ON mydb.* TO 'developer'@'localhost';
    
  1. ව්‍යාපාර විශ්ලේෂක : දත්ත විශ්ලේෂණය සහ වාර්තාකරණය සඳහා පමණක් SELECT අවසර ඇති පරිශීලකයෙකු.
    GRANT SELECT ON mydb.* TO 'analyst'@'localhost';
    

මෙම ආකාරයෙන් එක් එක් පරිශීලකයා සඳහා අවසරයන් අභිරුචි කිරීමෙන්, ඔබට ආරක්ෂාව වැඩි කරගත හැකි අතර මෙහෙයුම් කාර්යක්ෂමතාවයද වැඩි කළ හැක.

5. SHOW GRANTS සමඟ අවසර පරීක්ෂා කිරීම

අවසර පරීක්ෂා කිරීමේ ක්‍රමය

ඔබ SHOW GRANTS විධානය භාවිතා කර නියමිත පරිශීලකයකුට ලබා දී ඇති අවසර පරීක්ෂා කළ හැක.

SHOW GRANTS FOR 'user'@'localhost';

ඔබ මෙම විධානය ක්‍රියාත්මක කළ විට, එම පරිශීලකයාට ලබා දී ඇති සියලු අවසර පෙන්වනු ලැබේ. උදාහරණයක් ලෙස, ඔබට පහත ආකාරයේ ප්‍රතිඵලයක් දැකිය හැක:

GRANT SELECT, INSERT, UPDATE ON mydb.* TO 'user'@'localhost';

මෙය දත්ත ගබඩා පරිපාලකයන්ට පරිශීලක අවසර පහසුවෙන් සමාලෝචනය කර අවශ්‍ය නම් වෙනස් කිරීමට ඉඩ සලසයි.

ගැටළු නිරාකරණය

අවසර සැකසුම් සම්බන්ධ ගැටළු ඇති වූ විට, පළමු පියවර වන්නේ SHOW GRANTS භාවිතා කර පරිශීලකයාට අවශ්‍ය අවසර තිබේදැයි තහවුරු කිරීමයි. උදාහරණයක් ලෙස, පරිශීලකයාට නියමිත වගුවක් ප්‍රවේශ වීමට නොහැකි නම්, ප්‍රමාණවත් අවසර ලබා දී ඇත්දැයි පරීක්ෂා කර අවශ්‍ය නම් ඒවා වෙනස් කරන්න.

6. REVOKE විධානය භාවිතා කර අවසර ඉවත් කිරීම

REVOKE විධානයේ මූලික ව්‍යවස්ථාව

GRANT විධානයෙන් ලබා දී ඇති අවසර REVOKE විධානයෙන් ඉවත් කළ හැක. මූලික ව්‍යවස්ථාව පහත පරිදි වේ:

REVOKE privilege_name ON database_name.table_name FROM 'username'@'hostname';

උදාහරණයක් ලෙස, පරිශීලකයකුට SELECT අවසර ඉවත් කිරීමට, ඔබ මෙසේ ලියන්න:

REVOKE SELECT ON mydb.* FROM 'user'@'localhost';

මෙම විධානය නියමිත පරිශීලකයාගෙන් mydb දත්ත ගබඩාවේ සියලු වගුවල SELECT අවසර ඉවත් කරයි.

එක්වරම බහු අවසර ඉවත් කිරීමේ ක්‍රමය

ඔබට එකවර බහු අවසර ඉවත් කළ හැක. උදාහරණයක් ලෙස, INSERT සහ UPDATE අවසර දෙකම ඉවත් කිරීමට:

REVOKE INSERT, UPDATE ON mydb.* FROM 'user'@'localhost';

මෙය user නාමය ඇති පරිශීලකයාට mydb දත්ත ගබඩාවේ INSERT සහ UPDATE මෙහෙයුම් සිදු කිරීමෙන් තහනම් කරයි.

සාමාන්‍ය ගැටළු සහ විසඳුම්

REVOKE විධානය භාවිතා කරන විට, සැලකිල්ලට ගත යුතු වැදගත් කරුණු ඇත. උදාහරණයක් ලෙස, පරිශීලකයාට අමතර අවසර තිබේ නම්, කිසිඳු අවසරයක් පමණක් ඉවත් කිරීමෙන් අනෙකුත් අවසරයන් තවමත් රැඳී පවතී. එබැවින් සියලු අවසර සමාලෝචනය කර, අවශ්‍ය නොවන අවසර පූර්ණයෙන් ඉවත් කර ඇති බව තහවුරු කිරීම වැදගත් වේ.

7. ආරක්ෂාව ශක්තිමත් කිරීම සඳහා හොඳම ක්‍රියාමාර්ග

අවම අවසර නීතිය

MySQL පරිශීලක අවසර සැකසුම්හි, අවම අවසර නීතිය යනු ඉතාමත් නිර්දේශිත හොඳම ක්‍රියාමාර්ගයයි. මෙම නීතිය අනුව, එක් එක් පරිශීලකයාට ඔවුන්ගේ කාර්යය සඳහා අවශ්‍ය අවම අවසර පමණක් ලබා දිය යුතුය. උදාහරණයක් ලෙස, සංවර්ධකයන්ට දත්ත ඇතුළත් කිරීම හෝ යාවත්කාලීන කිරීමේ අවසර ලබා දිය හැකි නමුත්, සම්පූර්ණ දත්ත ගබඩාව ඉවත් කිරීමේ අවසර ඔවුන්ට අවශ්‍ය නොවේ.

GRANT SELECT, INSERT ON mydb.* TO 'developer'@'localhost';

අවසර නිතර සමාලෝචනය

ආරක්ෂාව ශක්තිමත් කිරීම සඳහා, පරිශීලක අවසර නිතර සමාලෝචනය කිරීම වැදගත් වේ. විශේෂයෙන්, ව්‍යාපෘතිය අවසන් වූ පසු හිටපු සේවකයන්ට හෝ බාහිර ගනුදෙනුකරුවන්ට ලබා දී ඇති අවසර ඉක්මනින් ඉවත් කළ යුතුය. SHOW GRANTS විධානය භාවිතා කර එක් එක් පරිශීලකයාට ලබා දී ඇති අවසර නිතර පරීක්ෂා කරන්න.

SHOW GRANTS FOR 'user'@'localhost';

මෙය ඔබට එක් එක් පරිශීලකයාට ඇති දත්ත ගබඩා සහ අවසර තහවුරු කිරීමට ඉඩ සලසයි. අවශ්‍ය නොවන අවසර තිබේ නම්, REVOKE විධානය භාවිතා කර ඒවා වහාම ඉවත් කරන්න.

සත්කාරක නාමයන් සීමා කිරීමෙන් ආරක්ෂාව වැඩි කිරීම

පරිශීලකයන්ට දත්ත ගබඩාවට ප්‍රවේශ විය හැකි සත්කාරක නාමය සීමා කිරීම MySQL ආරක්ෂාව වැඩි කිරීමේ තවත් ක්‍රමයකි. උදාහරණයක් ලෙස, දේශීය යන්ත්‍රයෙන් පමණක් ප්‍රවේශය ලබා දීමට, සත්කාරක නාමය ලෙස localhost නියම කරන්න.

GRANT SELECT ON mydb.* TO 'user'@'localhost';

දුරස්ථ ප්‍රවේශය සීමා කිරීමට අවශ්‍ය නම්, සත්කාරක නාමය ලෙස විශේෂ IP ලිපිනයක් නියම කළ හැක.

GRANT ALL PRIVILEGES ON mydb.* TO 'user'@'192.168.1.100';

8. නිගමනය

මෙම ලිපියේ, MySQL GRANT විධානය භාවිතා කර පරිශීලක අවසරයන් කොන්ෆිගර් කිරීම පිළිබඳ විස්තරාත්මකව පැහැදිලි කර ඇත. GRANT විධානය නිසි ලෙස භාවිතා කිරීමෙන්, ඔබට පරිශීලකයන්ට සුදුසු අවසර ලබා දී දත්ත ගබඩා ආරක්ෂාව තහවුරු කළ හැක. තවද, SHOW GRANTS සහ REVOKE විධාන භාවිතා කර අවසර පරීක්ෂා කිරීම සහ ඉවත් කිරීමෙන්, ඔබට සෑම වේලාවකම නිසි අවසර කළමනාකරණය රැකගත හැක.

ආරක්ෂාව ශක්තිමත් කිරීම සඳහා, Principle of Least Privilege අනුගමනය කිරීම සහ පරිශීලක අවසරයන් නිතර සමාලෝචනය කිරීම නිර්දේශ කරයි. MySQL අවසර කොන්ෆිගර් කිරීම දත්ත ගබඩා ආරක්ෂාවේ මූලික අංගයක් වන බැවින්, මෙම පද්ධති සම්පූර්ණයෙන් තේරුම්ගෙන ක්‍රියාත්මක කිරීම වැදගත් වේ.