GRANT, REVOKE සහ DENY දත්ත සමුදා අවසර
දත්ත පාලන භාෂාව (DCL) ව්යුහගත Query Language (SQL) උපකුලකයක් වන අතර දත්ත සමුදා පරිපාලකයන් හට රහස් දත්ත සමුදායට ආරක්ෂිත ප්රවේශය සැකසීම සඳහා ඉඩ දෙයි. දත්ත සමුදාය වස්තු එකතු කිරීම සහ මකා දැමීම සඳහා භාවිතා කරන දත්ත නිර්වචන භාෂාව (DDL) එයට අනුකලනය වන අතර දත්ත සමුදායේ අන්තර්ගතය ලබාගැනීම, ඇතුල් කිරීම සහ වෙනස් කිරීම සඳහා භාවිතා කරන දත්ත කළමනාකරණය භාෂාව (DML) භාවිතා කරයි.
DCL යනු SQL උපකාමීන්ගෙන් සරලම වේ, එය විධානයන් තුනක් පමණක් අඩංගු වේ: GRANT, REVOKE සහ DENY. සංයුක්ත තුනක්, මෙම විධානයන් තුන අතිශයින් ශෝධිත ආකාරයෙන් දත්ත සමුදා අවසරයන් සැකසීමට හා ඉවත් කිරීමට නම්යශීලී පරිපාලකයන්ට සපයයි.
GRANT විධානය සමඟ අවසර එකතු කිරීම
දත්ත සමුදා පරිශීලකයාට නව අවසරයක් එක් කිරීමට GRANT විධානය පරිපාලකයන් විසින් භාවිතා කරයි. මෙය ඉතා සරල syntax එකක් පහත පරිදි අර්ථ දැක්වේ:
GRANT [වරප්රසාද] ON [object] TO [user] [GRANT OPTION WITH]මෙන්න මෙම විධානය මඟින් සැපයිය හැකි පරාමිතීන් හි ඇති අත්පත්රිකාව මෙන්න:
- Privilege ALL (ප්රධාන විධාන ලබා දීම සඳහා) හෝ විශේෂිත දත්ත සමුදා අවසරයක් හෝ අවසර කට්ටලයක් විය හැකිය. උදාහරණ ලෙස CREATE DATABASE, SELECT, INSERT, UPDATE, DELETE, EXECUTE සහ CREATE VIEW ඇතුලත් කරන්න.
- වස්තුව ඕනෑම දත්ත ගබඩා වස්තුවක් විය හැක. මෙම වගන්තියේ ඇතුළත් කළ දත්ත සමුදා වර්ගය මත පදනම්ව වලංගු වරප්රසාද විකල්ප වෙනස් වේ. සාමාන්යයෙන්, වස්තුව යනු දත්ත සමුදායක්, ක්රියාකාරීත්වය, ගබඩා කිරීමේ ක්රියාවලිය , වගුව හෝ දර්ශනය වේ.
- පරිශීලකයා ඕනෑම දත්ත සමුදා පරිශීලකයෙකු විය හැක. ඔබට භූමිකාව පදනම් කරගත් දත්ත ආරක්ෂාව භාවිතා කිරීමට කැමති නම් මෙම වගන්තියේ පරිශීලකයාට භූමිකාවක් ආදේශ කරන්නට පුළුවන.
- GRANT විධානය අවසානය සමඟ විකල්ප GRANT OPTION වගන්තිය ඇතුළත් නොවේ නම්, ඔබ විසින් නියම කරන ලද පරිශීලකයන්ට SQL ප්රකාශයේ ඇති අවසරයන් ලබාදී පමණක් නොව, එම අවසරයන් වෙනත් දත්ත සමුදා පරිශීලකයින්ට ලබා දීම සඳහා පරිශීලකයාට ලබා දෙනු ඇත. මෙම හේතුව නිසා මේ වගන්තිය ගැන සැලකිලිමත් වන්න.
උදාහරණයක් ලෙස, පරිශීලකයා ජෝ වෙත දත්ත සමුදායෙන් තොරතුරු ලබා ගැනීමට හැකියාව ලබා දෙන ලෙසට HR ලෙස හැඳින්විය හැකිය. පහත දැක්වෙන SQL විධානය භාවිතා කළ හැකිය:
ජීසේවක වගුවේ තොරතුරු ලබාගැනීමට ජෝට දැන් හැකි වනු ඇත. කෙසේ වෙතත්, ඔබට මෙම වගුවෙන් තොරතුරු ලබාගැනීමට වෙනත් පරිශීලකයින්ට අවසර නොදෙනු ඇත. ඔබ GRANT ප්රකාශයේ WITH GRANT OPTION වගන්තිය ඇතුළත් නොකළ නිසා.
දත්ත සමුදා ප්රවේශය අවලංගු කිරීම
එවැනි ප්රවේශයක් ලබා දුන් පරිශීලකයෙකුගෙන් දත්ත සමුදා ප්රවේශය ඉවත් කිරීමට REVOKE විධානය භාවිතා කරයි. මෙම විධානය සඳහා රීති පහත පරිදි අර්ථ දැක්වේ:
REVOKE [GRANT OPTION FOR] [අවසරය] ON [object] FROM [user] [CASCADE]පහත දැක්වෙන්නේ REVOKE විධානය සඳහා පරාමිතීන් හි පරාමිතිය:
- හඳුනා ගත් පරිශීලකයා වෙතින් ඉවත් කිරීමට අවසර ලබා දීම සඳහා දත්ත සමුදා අවසරයන් නියම කෙරේ. හඳුනාගත් අවසරය සඳහා මීට පෙර සිදු කරන ලද GRANT සහ DENY යන දෙකම එම විධික්රමය අහෝසි කරයි.
- වස්තුව ඕනෑම දත්ත ගබඩා වස්තුවක් විය හැක. මෙම වගන්තියේ ඇතුළත් කළ දත්ත සමුදා වර්ගය මත පදනම්ව වලංගු වරප්රසාද විකල්ප වෙනස් වේ. සාමාන්යයෙන්, වස්තුව යනු දත්ත සමුදායක්, ක්රියාකාරීත්වය, ගබඩා කිරීමේ ක්රියාවලිය, වගුව හෝ දර්ශනය වේ.
- පරිශීලකයා ඕනෑම දත්ත සමුදා පරිශීලකයෙකු විය හැක. ඔබට භූමිකාව පදනම් කරගත් දත්ත ආරක්ෂාව භාවිතා කිරීමට කැමති නම් මෙම වගන්තියේ පරිශීලකයාට භූමිකාවක් ආදේශ කරන්නට පුළුවන.
- GRANT OPTION FOR යන වගන්තිය වෙනත් පරිශීලකයින්ට නිශ්චිත අවසරය ලබා දීමට විශේෂිත පරිශීලකයාගේ හැකියාව ඉවත් කරයි. සටහන : ඔබ විසින් REVOKE ප්රකාශයේ GRANT OPTION FOR ඇතුලත් කර ඇත්නම්, ප්රාථමික අවසරය අවලංගු කර නැත . මෙම වගන්තිය ප්රදානය කිරීමේ හැකියාව පමණක් අවලංගු කරයි.
- CASCADE විකල්පය විසින් නියම කරන ලද පරිශීලකයා අවසරය ලබා දුන් ඕනෑම පරිශීලකයෙකුගෙන් විශේෂිත අවසරය අවලංගු කරයි.
නිදසුනක් ලෙස, පහත දැක්වෙන විධානය පෙර උදාහරණය තුල ජෝට ලබා දී ඇති අවසරය අවලංගු කරයි:
ජෝ වෙතින් එච්.ඊ.දත්ත සමුදායක් ප්රතික්ෂේප කිරීම පැහැදිලිව ප්රතික්ෂේප කිරීම
DENY විධානය භාවිතා කරන්නෙකු කිසියම් විශේෂ අවසරයක් ලබා ගැනීම වළක්වාලීම සඳහා භාවිතා කරනු ලැබේ. පරිශීලකයෙකුට අවසරයක් ලබා දෙන භූමිකාවක් හෝ කණ්ඩායමක් සාමාජිකයෙකුට මෙය ප්රයෝජනවත් වේ. තවද, එම පුද්ගලයාගෙන් අවසරය අහිමි වීමෙන් ව්යතිරේකයක් නිර්මාණය කිරීමෙන් වැළැක්වීමට අවශ්ය වේ. මෙම විධානය සඳහා රීති පහත පරිදි වේ:
DENY [අවසරය] ON [object] TO [user] DENY විධානය සඳහා වන පරාමිතීන් GRANT විධානය සඳහා භාවිතා කරන ලද ඒවාට සමාන වේ.
උදාහරණයක් ලෙස, සේවකයින් වගුවේ තොරතුරු මකාදැමීමට මතෙව් කිසි විටෙකත් නොලැබෙන බව සහතික කිරීමට ඔබ කැමති නම්, පහත දැක්වෙන විධානය ලබා දෙන්න: