SQL තුල පරිශීලකයින් සහ භූමිකාවන් සඳහා පාලන ප්රවේශය

අනාරක්ෂිත බාහිර සයිඩ් සහ ඔවුන්ගේ අභ්යන්තර බලධාරීන්ගේ අධිකාරය ඉක්මවා යෑමට තැත් කරන සුරක්ෂිත ඇස්බැංකුවේ සිට ඔවුන්ගේ වැදගත් දත්ත ව්යාපාරයන්ගෙන් ආරක්ෂා කර ගැනීමට සොයන දත්ත කළමනාකරුවන්ගේ ආරක්ෂාව අතිශය වැදගත් ය. මෙම තර්කානුකූලභාවය අවම කිරීම සඳහා නිර්මාණය කර ඇති සියලු අභ්යන්තර දත්ත සමුදා කළමණාකරණ පද්ධතීන් යම් ආකාරයක අභ්යන්තර ආරක්ෂණ යාන්ත්රණයක් සපයයි. ඔවුන් විසින් පරාසයක පරිශීලක / ව්යුහාත්මක ව්යුහය වෙත Microsoft Access මඟින් ලබාදෙන සරල මුරපද ආරක්ෂාව පරාසයක සිට ඔරකල් සහ මයික්රොසොෆ්ට් SQL සර්වරය වැනි දියුණු සම්බන්ධතා දත්ත සමුදායන් මඟින් අනුග්රහය දක්වයි. ව්යුහගත Query Language (හෝ SQL ) ක්රියාත්මක කරන සියලුම දත්ත සමුදායන්ගේ පොදු ආරක්ෂණ යාන්ත්රණය මෙම ලිපිය අවධානය යොමු කරයි. දත්ත එකතු කිරීමේ පාලනය ශක්තිමත් කිරීම සහ ඔබගේ දත්තවල ආරක්ෂාව තහවුරු කිරීමේ ක්රියාවලිය හරහා අපි එක්වෙමු.

පරිශීලකයන්

සර්වර මත පදනම් දත්ත සමුදායන් සියල්ලම පරිගණක මෙහෙයුම් පද්ධතිවල භාවිතයට සමාන පරිශීලක සංකල්පයකට සහය වේ. මයික්රොසොෆ්ට් වින්ඩෝස් එන්ටී සහ වින්ඩෝස් 2000 හි ඇති පරිශීලකයාගේ / කණ්ඩායම් ධූරාවලිය ගැන ඔබ හුරුපුරුදු නම්, SQL Server සහ ඔරකල් විසින් සපයන ලද පරිශීලක / භූමික කණ්ඩායම් සම්භවයක් දක්වයි.

ඔබේ දත්ත සමුදායට පිවිසෙන සෑම පුද්ගලයෙකු සඳහාම ඔබ එක් එක් දත්ත සමුදා පරිශීලක ගිණුම් නිර්මාණය කිරීමට බෙහෙවින් රෙකමදාරු කරනු ලැබේ. පරිශීලකයින් අතර ඇති ගිණුම් හුවමාරු කර ගැනීම හෝ ඔබේ දත්ත සමුදායට ප්රවේශ වීමට අවශ්ය එක් පරිශීලකයෙකු සඳහා එක් පරිශීලක වර්ගයක් භාවිතා කිරීම සඳහා තාක්ෂණික වශයෙන් හැකිනම්, නමුත් හේතු දෙකක් සඳහා මෙම ක්රියාව දැඩිව අධෛර්යමත් කරමි. පළමුවෙන්ම, ඒක පුද්ගල වගවීම ඉවත් කරනු ඇත - පරිශීලකයා ඔබගේ දත්තගබඩාවට වෙනසක් සිදු කරන්නේ නම් (තමාට ඩොලර් 5,000 ක් ලබා දීමෙන් කියමු නම්), විගණන ලඝු භාවිතයෙන් නිශ්චිත පුද්ගලයෙකු වෙත එය නැවත සොයාගත නොහැකි වනු ඇත. තවද, විශේෂිත පරිශීලකයෙකු ඔබේ සංවිධානයෙන් පිටතට ගියහොත්, දත්ත සමුදායේ සිට ඔහුගේ හෝ ඇයගේ ප්රවේශය ඉවත් කිරීමට කැමති නම්, සියලු පරිශීලකයින් මත රඳා පවතින මුරපදය වෙනස් කිරීමට ඔබට බල කෙරෙනු ඇත.

පරිශීලක ගිණුම් නිර්මාණය කිරීමේ ක්රමවේදය වේදිකාවක් සිට වේදිකාවක් දක්වා වෙනස් වන අතර නිසි ක්රියාපටිපාටිය සඳහා ඔබේ DBMS-විශේෂිත ලියකියවිලි විමසා බැලිය යුතුය. Microsoft SQL Server භාවිතා කරන්නන් sp_adduser ගබඩා කරන ලද ක්රියාපටිපාටිය භාවිතා කිරීම පිළිබඳව විමර්ශනය කළ යුතුය. Oracle දත්ත සමුදා පරිපාලකයන් CREATE USER විධානය ප්රයෝජනවත් වනු ඇත. විකල්ප සත්යාපන යෝජනා ක්රම විමර්ශනය කිරීමටද ඔබට අවශ්ය විය හැකිය. උදාහරණයක් ලෙස, මයික්රොසොෆ්ට් SQL සර්වරය වින්ඩෝස් එටිසලාට් ඒකාබද්ධ කළ ආරක්ෂාව භාවිතා කරයි. මෙම ක්රමවේදය යටතේ පරිශීලකයන් තම Windows NT පරිශීලක ගිණුම් මගින් දත්ත ගබඩාවට හඳුනාගෙන ඇති අතර, දත්ත සමුදායට පිවිසීමට අතිරේක පරිශීලක හැඳුනුම්පතක් සහ මුරපදයක් ඇතුළත් කිරීමට අවශ්ය නොවේ. මෙම ප්රවේශය දත්ත සමුදා පරිපාලකයන් අතර අතිශයින් ජනප්රියයි. ගිණුම් පරිපාලනය ජාල පරිපාලන කාර්ය මණ්ඩලයට බරක් ලෙස මාරු කර ඇති අතර එය අවසන් පරිශීලකයාට එකම සංඥාවක් සපයයි.

භූමිකාවන්

ඔබ කුඩා පරිශීලකයින් පිරිසක් සමඟ පරිසරයක් තිබේ නම්, ඔබගේ අවශ්යතාවයන් සඳහා පරිශීලක ගිණුම් සෑදීම සහ ඒවාට කෙලින්ම අවසර ලබා දීම ප්රමාණවත් බව ඔබට පෙනේවි. කෙසේ වෙතත්, ඔබ විශාල පරිශීලකයන් සිටී නම්, ගිණුම් පවත්වාගෙන යාම සහ නිසි අවසර ලබා ගැනීමේ බර ඔබ බොහෝ සෙයින් භුක්ති විඳිනු ඇත. මෙම බර ලිහිල් කිරීම සඳහා සාපේක්ෂ දත්ත රාමුව භූමිකාව පිළිබඳ සංකල්පයට සහාය දක්වයි. බංස්ටික් භූමිකාවන් වින්ඩෝස් එන්.ටී.කේ. කාණ්ඩ වලට සමාන වේ. පරිශීලක ගිණුම් භූමිකාවන්ට පවරනු ලබන අතර තනි පරිශීලක ගිණුම් වලට වඩා සම්පූර්ණ භූමිකාව සඳහා අවසර ලබා දෙනු ලැබේ. උදාහරණයක් ලෙස, අපට DBA කාර්යභාරයක් නිර්මාණය කළ හැකි අතර පසුව අපගේ පරිපාලන කාර්ය මණ්ඩලය සඳහා පරිශීලක ගිණුම් එකතු කිරීම. අප මෙය සිදු කළ පසු, වර්තමාන (සහ අනාගත) පරිපාලකයින්ට අප විසින් කාර්යභාරය සඳහා අවසර ලබා දීමෙන් අපට නිශ්චිත අවසරයක් ලබා දිය හැකිය. නැවත වරක්, භූමිකාවන් නිර්මාණය කිරීමේ ක්රියා පටිපාටිය අනුව වේදිකාවක් සිට වේදිකාවක් දක්වා වේ. MS SQL Server පරිපාලකයින් sp_addrole ගබඩා කරන ලද ක්රියාපටිපාටිය පරීක්ෂා කළ යුතු අතර Oracle DBAs CREATE ROLE syntax භාවිතා කළ යුතුය.

අවසර ලබා දීම

දැන් අපි අපගේ දත්ත සමුදාය පරිශීලකයන් එකතු කර ඇති අතර, අවසරයන් එකතු කිරීමෙන් ආරක්ෂාව තර කිරීම ඇරඹීමට කාලයයි. අපගේ පළමු පියවර වන්නේ අපගේ පරිශීලකයන්ට සුදුසු දත්ත සමුදා අවසර ලබා දීමයි. SQL GRANT ප්රකාශය භාවිතා කිරීමෙන් අපි මෙය ඉටු කරනු ඇත.

මෙම ප්රකාශයේ රීතිය පහත දැක්වේ:

GRANT <අවසර>
[ON <වගුව>]
<පරිශීලක / භූමිකාව> වෙත
[පරිත්යාග කිරීම]

දැන්, මෙම ප්රකාශය රේඛා-රේඛාව දෙස බලමු. පළමු පේළිය, GRANT <අවසරයන්>, අප විසින් ලබා දෙන විශේෂිත වගු අවසරයන් නියම කිරීමට අපට අවසර දෙයි. මෙම වගු මට්ටමේ අවසරයන් (SELECT, INSERT, UPDATE සහ DELETE වැනි) හෝ දත්ත සමුදා අවසරයන් (CREATE TABLE, ALTER DATABASE සහ GRANT වැනි) විය හැක. එක් අවසරයකට වඩා එක් ප්රදානයක ප්රකාශනයක් ලබා ගත හැකි නමුත්, වගු මට්ටමේ අවසර සහ දත්ත සමුදා මට්ටමේ අවසරයන් තනි ප්රකාශයක් තුල ඒකාබද්ධ නොකළ හැකිය.

දෙවන පේළිය, ON

, වගුව මට්ටමේ අවසර සඳහා වන බලපෑම එල්ල වූ වගුව සඳහා භාවිතා කරනු ලැබේ. දත්ත සමුදා මට්ටමේ අවසර ලබා දෙන්නේ නම් මෙම පේළිය අපහසු වේ. තුන්වන පේළිය මඟින් අවසර ලබා දී ඇති පරිශීලකයා හෝ භූමිකාව සඳහන් කරයි.

අවසාන වශයෙන්, හතරවන පේළිය, GRANT OPTION WITH විකල්පයකි. මෙම පේළිය ප්රකාශයට ඇතුළත් කර ඇත්නම්, වෙනත් පරිශීලකයන්ටද එම අවසරයන් ලබා දීම සඳහා බලපෑමට ලක්වූ පරිශීලකයාටද අවසර දෙනු ලැබේ. අවසර ලබා දී ඇති භූමිකාවට පවරන විට WITH GRANT OPTION නියම කළ නොහැක.

උදාහරණ

උදාහරණ කිහිපයක් බලමු. අපගේ පළමු අවස්ථාව අනුව, අප මෑතදී දත්ත ඇතුලත් කිරීමේ ක්රියාකරුවන් 42 ක කණ්ඩායමක් කුලියට ගනු ලැබුවා. පාරිභෝගිකයින්ගේ වගුවෙහි තොරතුරු ප්රවේශ කිරීමට ඔවුන්ට අවශ්ය විය යුතුය, මෙම තොරතුරු වෙනස් කිරීම හා වගුව සඳහා නව වාර්තා එකතු කරන්න. දත්ත සමුදායෙන් වාර්තාවක් මුලුමනින්ම මකා දැමීමට ඔවුන්ට නොහැකි විය යුතුය. පළමුව, අපි එක් එක් ක්රියාකරු සඳහා පරිශීලක ගිණුම් නිර්මාණය කළ යුතු අතර පසුව ඒවා සියල්ල නව දත්ත එක් කිරීමට, DataEntry. ඊළඟට, අපි පහත දැක්වෙන SQL ප්රකාශය අවශ්ය නිසි අවසර ලබාදීම සඳහා භාවිතා කළ යුතුය:

GRANT SELECT, INSERT, UPDATE
පාරිභෝගිකයින්
DataEntry වෙත

ඒ සියල්ලම එයයි! දැන් දත්තගබඩා මට්ටමේ අවසරයන් ලබා දෙන ස්ථානයක් අපි සලකා බලමු. අපගේ දත්ත සමුදාය වෙත නව වගු එකතු කිරීම සඳහා DBA කාර්යයයේ සාමාජිකයින්ට අපි ඉඩ දෙන්නෙමු. තව දුරටත්, අපට අවශ්ය වන්නේ වෙනත් පරිශීලකයන්ට එම දේ කිරීමට ඉඩ ලබා දීමයි. මෙන්න SQL ප්රකාශය:

GRANT TABLE TABLE
ඩබ්.ඒ.
GRANT OPTION WITH

අපගේ DBAs වෙනත් පරිශීලකයන්ට මෙම අවසරය පැවරිය හැකි බව සහතික කර ගැනීම සඳහා WITH GRANT OPTION රේඛාව ඇතුළත් කර ඇති බව සැලකිල්ලට ගන්න.

අවසර ඉවත් කිරීම

අපි අවසර ලබා දුන්නා පසුව, ඒවා පසුකාලීනව ඒවා අවලංගු කිරීම අවශ්ය වේ. වාසනාවකට මෙන්, අවසර ලබා දුන් අවසර ඉවත් කිරීම සඳහා SQL මඟින් අපට රිවෝKE විධානය ලබා දෙයි. මෙන්න රීතය:

REVOKE [GRANT OPTION FOR] <අවසරය>
ON <වගුව>
<පරිශීලක / භූමිකාව> වෙතින්

මෙම විධානයෙහි රීතිය GRANT විධානයට සමාන බව ඔබට පෙනෙනු ඇත. එකම වෙනස වන්නේ GRANT OPTION ආඥාව අවසානයේ නොව REVOKE විධාන රේඛාව මත බවය. උදාහරණයක් ලෙස, පාරිභෝගිකයාගේ දත්ත ගබඩාවෙන් වාර්තා ඉවත් කිරීම සඳහා මරියාට මීට පෙර ලබා දී තිබූ අවසරය අවලංගු කිරීමට අපට අවශ්යයි. අපි පහත දැක්වෙන විධානය භාවිතා කරමු:

අවලංගු කරන්න
පාරිභෝගිකයින්
මරියාගෙන්

ඒ සියල්ලම එයයි! ඩේනි අණ දීමේ වැදගත්කමක් ඇති මයික්රොසොෆ්ට් SQL සර්වරය විසින් අනුග්රහිත අතිරේක යාන්ත්රණයක් ඇත. වර්තමාන හෝ අනාගත භූමිකාව සාමාජිකත්වය හරහා වෙනත් අයෙකු විසින් ලබා ගත හැකි පරිශීලකයෙකුට අවසර දීම ප්රතික්ෂේප කිරීම සඳහා මෙම විධානය භාවිතා කළ හැකිය. මෙන්න රීතය:

DENY <අවසරයන්>
ON <වගුව>
<පරිශීලක / භූමිකාව

උදාහරණ

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

ඩෙනී මැකී
පාරිභෝගිකයින්
මරියාට

DENY විධානය මඟින් දත්ත සමුදායේ පාලන පාලනයන් තුල "ඍන අවසරයක්" නිර්මාණය කරයි. පාරිභෝගිකයින්ගේ වගුවෙන් පේළි ඉවත් කිරීමට මරියාට අවසර දීමෙන් පසුව, අපට GRANT විධානය භාවිතා කළ නොහැක. එම ආඥාව දැනට පවත්නා ඩෙනී විසින් ක්ෂනිකව තල්ලු කරනු ලැබේ. ඒ වෙනුවට, අපි සෘණ අවසර පත ඉවත් කිරීම සඳහා පහත සඳහන් ආකාරයට පහත දැක්වෙන අයුරින් REVOKE විධානය භාවිතා කරමු:

අවලංගු කරන්න
පාරිභෝගිකයින්
මරියාගෙන්

මෙම ආඥාව ධනාත්මක අවසරයක් ඉවත් කිරීම සඳහා භාවිතා කරන ලද ආකාරයට සමාන බව ඔබට පෙනෙනු ඇත. DENY සහ GRANT විධාන දෙකම දෙකම සමාන ආකාරයෙන් ක්රියාත්මක වන බව මතක තබාගන්න. ඒවා දෙකම දත්ත සමුදායේ ප්රවේශ පාලනය කිරීමේ යාන්ත්රණය (ධන හෝ සෘණාත්මක) අවසර දෙති. නිශ්චිත පරිශීලකයා සඳහා REVOKE විධානය සියලු ධනාත්මක සහ ඍණාත්මක අවසරයන් ඉවත් කරයි. මෙම විධානය නිකුත් කළ පසු මරියාට එම අවසරය ඇති භූමිකාවක සාමාජිකයෙකු නම් මේසයෙන් පේළි ඉවත් කිරීමට හැකි වනු ඇත. විකල්පයක් ලෙස, DELETE අවසරය ඇගේ ගිණුමට සෘජුවම ලබා දීම සඳහා GRANT විධානය ලබා දිය හැකිය.

මෙම ලිපියේ පාඨමාලාව පුරා, සම්මත Query Language මඟින් සහාය දක්වන ප්රවේශ පාලක යාන්ත්රණ පිළිබඳ හොඳ ගනුදෙනුවක් ඉගෙනගෙන තිබේ. මෙම හැඳින්වීම හොඳ ආරම්භක ස්ථානයක් ඔබට ලබා දිය යුතු අතර, නමුත් ඔබේ පද්ධතිය මගින් සපයන ලද ආරක්ෂිත පියවරයන් ඉගෙන ගැනීමට ඔබගේ DBMS ප්රලේකන සැකසීමට ඔබ දිරිගන්වනවා. බොහෝ දත්ත සමුදායන් විශේෂිත තීරු මත අවසර ලබා දීම වැනි වඩාත් දියුණු ප්රවේශ පාලක යාන්ත්රනයන් සඳහා සහාය දක්වයි.