GRANT, REVOKE, DENY ഡാറ്റാബേസ് അനുമതികൾ
സ്ട്രക്ചേർഡ് ക്വേർജ് ലാംഗ്വേജ് (എസ്എൽ) യുടെ ഉപസെറ്റ് ആണ് ഡേറ്റ കൺട്രോൾ ഭാഷ (ഡിസിഎൽ). കൂടാതെ ഡേറ്റാബേസ് അഡ്മിനിസ്ട്രേറ്ററുകളെ ബന്ധപ്പെട്ട ഡേറ്റാബേസുകളിലേക്ക് സുരക്ഷിതമായി പ്രവേശിപ്പിക്കാൻ അനുവദിക്കുന്നു. ഡാറ്റാബേസ് ഒബ്ജക്റ്റ് കൂട്ടിച്ചേർക്കാനും ഡേറ്റാ മാനിപുലേഷൻ ഭാഷ (ഡിഎംഎൽ) ഒരു ഡേറ്റാബേസിന്റെ ഉള്ളടക്കം വീണ്ടെടുക്കാനും, ഉൾപ്പെടുത്താനും, മാറ്റങ്ങൾ വരുത്താനുമുള്ള ഡേറ്റ ഡെഫനിഷൻ ഭാഷ (ഡിഡിഎൽ) ഇതു് പൂർത്തീകരിക്കുന്നു.
ജി.ആർ.ടി. ഉപസൗരത്തിലെ ഏറ്റവും ലളിതമായ ഒന്നാണ് ഡിസിസി. മൂന്നു് നിർദ്ദേശങ്ങൾ മാത്രമാണു്: GRANT, REVOKE, DENY. കമ്പൈൻഡ് ചെയ്തിരിയ്ക്കുന്നു, ഈ മൂന്ന് കമാൻഡുകൾ ഡേറ്റാബേസ് അനുമതികൾ തയ്യാറാക്കുകയും നീക്കം ചെയ്യുവാനുള്ള സൌകര്യവും അഡ്മിനിസ്ട്രേറ്ററുകളെ വളരെ വൃഷണീയ രീതിയിൽ നൽകുന്നു.
GRANT കമാൻഡിൽ അനുമതികൾ ചേർക്കുന്നു
ഒരു ഡാറ്റാബേസ് ഉപയോക്താവിന് പുതിയ അനുമതികൾ ചേർക്കാൻ അഡ്മിനിസ്ട്രേറ്റർമാർ ഉപയോഗിക്കുന്നതാണ് GRANT കമാൻഡ്. ഇതിന് വളരെ ലളിതമായ സിന്റാക്സ് ഉണ്ട്, അവ ഇങ്ങനെ ക്രമീകരിച്ചിരിക്കുന്നു:
[ഉപയോക്താവ്] [ഉപയോക്താവിനെ] ഗ്രാൻറ് ഓപ്ഷനുള്ള [വസ്തു] നൽകുകഇവിടെ നിങ്ങൾക്ക് ഈ കമാൻഡ് ഉപയോഗിച്ച് വിതരണം ചെയ്യാവുന്ന എല്ലാ പരാമീറ്ററുകളിലെയും ഒറ്റയടിക്ക് ആകുന്നു:
- പ്രിവിലേജ് ഒരു കീവേഡ് ALL (വൈവിധ്യമാർന്ന അനുമതികൾ അനുവദിക്കുന്നതിന്) അല്ലെങ്കിൽ ഒരു നിർദ്ദിഷ്ട ഡാറ്റാബേസ് അനുമതി അല്ലെങ്കിൽ അനുമതികളുടെ ഗണം ആയിരിക്കാം. ഉദാഹരണങ്ങളിൽ CREAT DATABASE, SELECT, INSERT, UPDATE, DELETE, EXECUTE, CREATE VIEW എന്നിവ ഉൾപ്പെടുന്നു.
- ഒബ്ജക്ട് ഏതെങ്കിലും ഡാറ്റാബേസ് ഒബ്ജക്റ്റ് ആകാം. ഈ ഭാഗത്ത് നിങ്ങൾ ഉൾപ്പെടുന്ന ഡാറ്റാബേസ് ഒബ്ജക്റ്റുകളുടെ തരം അടിസ്ഥാനമാക്കിയാണ് സാധുതയുള്ള അധികാരാവകാശ ഓപ്ഷനുകൾ വ്യത്യാസപ്പെടുന്നത്. സാധാരണയായി, ഒരു വസ്തുക്കള് ഒരു ഡാറ്റാബേസ്, ഫങ്ഷന്, സംഭരിച്ച നടപടിക്രമം , പട്ടിക അല്ലെങ്കില് കാഴ്ച എന്നിവ ആയിരിക്കും.
- ഉപയോക്താവ് ഏതെങ്കിലും ഡാറ്റാബേസ് ഉപയോക്താവാകാൻ കഴിയും. നിങ്ങൾ റോൾ അടിസ്ഥാനത്തിലുള്ള ഡേറ്റാ സെക്യൂരിറ്റി സെറ്റ് ഉപയോഗപ്പെടുത്താൻ ആഗ്രഹിക്കുന്നെങ്കിൽ ഈ ഭാഗത്ത് ഉപയോക്താവിന് ഒരു റോൾ പകരമായി നൽകാം.
- GRANT ആജ്ഞയുടെ അവസാനം GRANT ഓപ്ഷൻ ക്റസുകളിലുള്ള ഓപ്ഷണൽ ഉൾപ്പെടുത്തിയാൽ, നിർദിഷ്ട ഉപയോക്താവിന് എസ്.ക്യു.എൽ. സ്റ്റേറ്റ്മെന്റിൽ നിർവചിച്ചിരിക്കുന്ന അനുമതികൾ നൽകുക മാത്രമല്ല ഉപയോക്താവിന് മറ്റ് ഡാറ്റാബേസ് ഉപയോക്താക്കൾക്ക് അതേ അനുമതികൾ നൽകാനുള്ള കഴിവ് നൽകുകയും ചെയ്യുക. ഇക്കാരണത്താൽ, ഈ ഉപദേശം ശ്രദ്ധയോടെ ഉപയോഗിക്കുക.
ഉദാഹരണത്തിന്, ജീവനക്കാരുടെ പട്ടികയിൽ നിന്നും വിവര ശേഖരണത്തിൽ നിന്നും വിവരങ്ങൾ ശേഖരിക്കാൻ ശേഷി ഉപയോക്താവിന് എച്ച്.ഒ. ഇനി പറയുന്ന എസ്.ക്യു.എൽ. കമാൻറ് ഉപയോഗിക്കാം:
ജോ ക്ക് തൊഴിലുടമകളിലേക്ക് ജോ ്രത്ത് കൊടുക്കുകതൊഴിലാളികളുടെ പട്ടികയിൽ നിന്ന് വിവരങ്ങൾ വീണ്ടെടുക്കാനുള്ള ശേഷി ഇപ്പോൾ ജോയ്ക്ക് ഉണ്ടായിരിക്കും. എന്നാൽ, GRANT പ്രസ്താവനയിലെ GRANT ഓപ്ഷൻ ക്രെയിനുകൾ ഉൾപ്പെടുത്തിയിട്ടില്ല എന്നതിനാൽ, ആ പട്ടികയിൽ നിന്നുള്ള വിവരങ്ങൾ വീണ്ടെടുക്കാൻ മറ്റ് ഉപയോക്താക്കളെ അനുവദിക്കുവാൻ അദ്ദേഹത്തിന് കഴിയില്ല.
ഡാറ്റാബേസ് ആക്സസ് റദ്ദാക്കുന്നു
അത്തരം പ്രവേശനം മുമ്പ് നൽകിയ ഒരു ഉപയോക്താവിൽ നിന്നും ഡേറ്റാബേസ് പ്രവേശനം നീക്കം ചെയ്യാൻ REVOKE കമാൻഡ് ഉപയോഗിക്കുന്നു. ഈ കമാന്ഡിനുളള സിന്റാക്സ് താഴെ പറയുന്നു.
[ഉപയോക്താവ്] [ഉപയോക്താവ്] [വസ്തു] ൽ [വസ്തു] [പുനരാരംഭിക്കുക] [അനുവാദം]ഇവിടെ REVOKE കമാൻഡിനുളള പരാമീറ്ററുകളിലെ റൗണ്ടൗൺ ആകുന്നു:
- അനുമതി ഉപയോക്താവിൽ നിന്നും നീക്കം ചെയ്യുവാൻ ഡാറ്റാബേസ് അനുമതികൾ വ്യക്തമാക്കുന്നു. മുമ്പ് അനുമതി നൽകിയ അനുമതിയ്ക്കായി നിർമ്മിച്ച GRANT, DENY എന്നീ രണ്ട് നിർദേശങ്ങൾ ഈ ആജ്ഞ റദ്ദാക്കുന്നു.
- ഒബ്ജക്ട് ഏതെങ്കിലും ഡാറ്റാബേസ് ഒബ്ജക്റ്റ് ആകാം. ഈ ഭാഗത്ത് നിങ്ങൾ ഉൾപ്പെടുന്ന ഡാറ്റാബേസ് ഒബ്ജക്റ്റുകളുടെ തരം അടിസ്ഥാനമാക്കിയാണ് സാധുതയുള്ള അധികാരാവകാശ ഓപ്ഷനുകൾ വ്യത്യാസപ്പെടുന്നത്. സാധാരണയായി, ഒരു വസ്തുക്കള് ഒരു ഡാറ്റാബേസ്, ഫങ്ഷന്, സംഭരിച്ച നടപടിക്രമം, പട്ടിക അല്ലെങ്കില് കാഴ്ച എന്നിവ ആയിരിക്കും.
- ഉപയോക്താവ് ഏതെങ്കിലും ഡാറ്റാബേസ് ഉപയോക്താവാകാൻ കഴിയും. നിങ്ങൾ റോൾ അടിസ്ഥാനത്തിലുള്ള ഡേറ്റാ സെക്യൂരിറ്റി സെറ്റ് ഉപയോഗപ്പെടുത്താൻ ആഗ്രഹിക്കുന്നെങ്കിൽ ഈ ഭാഗത്ത് ഉപയോക്താവിന് ഒരു റോൾ പകരമായി നൽകാം.
- നിർദ്ദിഷ്ട അനുമതി മറ്റ് ഉപയോക്താക്കൾക്ക് അനുവദിക്കുന്നതിനുള്ള നിർദിഷ്ട ഉപയോക്താവിന്റെ കഴിവിനെ നീക്കംചെയ്യുന്നു. ശ്രദ്ധിക്കുക : ഒരു REVOKE പ്രസ്താവനയിലെ നിബന്ധനയ്ക്കായി നിങ്ങൾ GRANT ഓപ്ഷൻ ഉൾപ്പെടുത്തുകയാണെങ്കിൽ, പ്രാഥമിക അനുമതി അസാധുവാക്കില്ല. ഈ ഉപദേശം അനുവദിക്കുന്നതിനുള്ള കഴിവ് മാത്രം പിൻവലിക്കുന്നു.
- വ്യക്തമാക്കിയ ഉപയോക്താവിന് അനുമതി നൽകിയ ഏതെങ്കിലും ഉപയോക്താക്കളിൽ നിന്ന് പ്രത്യേക അനുമതിയും CASCADE ഓപ്ഷൻ അസാധുവാക്കുന്നു.
ഉദാഹരണത്തിനു്, താഴെ പറഞ്ഞിരിയ്ക്കുന്ന ഉദാഹരണത്തിൽ ജോയ്ക്ക് അനുവദിച്ചിട്ടുള്ള അനുമതി പിൻവലിക്കാൻ താഴെ പറയുന്ന കമാൻഡ് പിൻവലിക്കുന്നു:
ജോ ൽ നിന്നുള്ള തൊഴിലാളികളെ റിവോക്ക് ചെയ്യുകഡാറ്റാബേസ് ആക്സസ് വ്യക്തമായി നിരസിക്കുന്നു
ഒരു പ്രത്യേക അനുമതി സ്വീകരിക്കുന്നതിൽ നിന്നും ഒരു ഉപയോക്താവിനെ പ്രത്യേകം തടയാൻ DENY കമാൻഡ് ഉപയോഗിക്കുന്നു. ഒരു ഉപയോക്താവ് ഒരു അനുമതിയുളള ഒരു റോൾ അല്ലെങ്കിൽ ഗ്രൂപ്പിലെ അംഗം ആയിരിക്കുമ്പോൾ ഇത് സഹായകരമാണ്, കൂടാതെ ഒരു വ്യക്തിയെ ഒഴിവാക്കിക്കൊണ്ട് ആ വ്യക്തിയെ ഉപയോക്താവിന് അവകാശം നൽകുന്നത് തടയാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നു. ഈ കമാന്ഡിനുള്ള സിന്റാക്സ് താഴെ കാണിച്ചിരിക്കുന്നു:
DENY [അനുവാദം] [ഉപയോക്താവ്] എന്നതിലേക്ക് [ഒബ്ജക്റ്റ്] ഡിഎൻഐ കമാൻഡിനുള്ള പരാമീറ്ററുകൾ, GRANT കമാൻഡിനുള്ള ഉപയോഗത്തിനു തുല്യമാണു്.
ഉദാഹരണത്തിന്, ജീവനക്കാരുടെ ടേബിളിൽ നിന്ന് വിവരങ്ങൾ മാറ്റുവാന് മാത്യു സ്വീകരിക്കില്ല എന്ന് ഉറപ്പുവരുത്താന് നിങ്ങള് ആഗ്രഹിക്കുന്നുണ്ടെങ്കില്, ഇനിപ്പറയുന്ന കമാന്ഡ് ഇഷ്യു ചെയ്യുക: