MySQL-ൽ എങ്ങനെ ഒരു പുതിയ ഉപയോക്താവിനെ സൃഷ്ടിക്കുകയും അനുമതികൾ നൽകുകയും ചെയ്യാം


ഡാറ്റ സംഭരിക്കുകയും ഓർഗനൈസുചെയ്യുകയും ഉപയോക്താക്കളെ അത് വീണ്ടെടുക്കാൻ അനുവദിക്കുകയും ചെയ്യുന്ന ജനപ്രിയവും വ്യാപകമായി ഉപയോഗിക്കുന്നതുമായ ഒരു ഡാറ്റാബേസ് മാനേജ്മെന്റ് സിസ്റ്റമാണ് MySQL. ടേബിളുകൾക്കും ഡാറ്റാബേസുകൾക്കും ഉപയോക്താക്കൾക്ക് ചില അനുമതികൾ നൽകുന്ന വിപുലമായ ഓപ്ഷനുമായാണ് ഇത് വരുന്നത്.

ഈ ഗൈഡിൽ, ഒരു പുതിയ ഉപയോക്താവിനെ എങ്ങനെ സൃഷ്ടിക്കാമെന്നും MySQL ഡാറ്റാബേസിൽ അനുമതികൾ നൽകാമെന്നും നിങ്ങൾ പഠിക്കും.

MySQL-ൽ ഒരു പുതിയ ഉപയോക്താവിനെ എങ്ങനെ സൃഷ്ടിക്കാം

ഒരു പുതിയ ഉപയോക്താവിനെ സൃഷ്ടിക്കുന്നതിന് ആദ്യം MySQL ഷെല്ലിലേക്ക് ലോഗിൻ ചെയ്യുക.

$ sudo mysql -u root -p

MySQL ഡാറ്റാബേസ് സജ്ജീകരിക്കുമ്പോൾ നൽകിയ പാസ്uവേഡിന് ശേഷം സുഡോ പാസ്uവേഡ് നൽകുക, തുടർന്ന് ENTER അമർത്തുക. അതിനുശേഷം, നിങ്ങൾക്ക് ഈ നിർദ്ദേശം ലഭിക്കും.

ഒരു പുതിയ ഉപയോക്താവിനെ സൃഷ്ടിക്കാൻ, താഴെ കാണിച്ചിരിക്കുന്ന വാക്യഘടന ഉപയോഗിക്കുക:

MariaDB [none]> CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';

ഉദാഹരണത്തിന്, ഡാറ്റാബേസിനുള്ളിൽ 'tecmint' എന്ന പുതിയ ഉപയോക്താവിനെ സൃഷ്ടിക്കുന്നതിന്, കമാൻഡ് അഭ്യർത്ഥിക്കുക:

MariaDB [none]> CREATE USER 'tecmint'@'localhost' IDENTIFIED BY 'QkYKmw$5tec';

പ്രാദേശികമായി ഒരു ഉപയോക്താവിനെ ചേർക്കുമ്പോൾ, അതായത്, നിങ്ങൾ MySQL ഇൻസ്റ്റാൾ ചെയ്ത സിസ്റ്റത്തിൽ, ഉപയോക്താവിന്റെ ഹോസ്റ്റ് ലോക്കൽ ഹോസ്റ്റായി വ്യക്തമാക്കുന്നു, അല്ലാതെ IP വിലാസമല്ല. 'ലോക്കൽ ഹോസ്റ്റ്' എന്ന കീവേഡ് 'ഈ കമ്പ്യൂട്ടർ' എന്ന് വിവർത്തനം ചെയ്യുകയും MySQL അതിനെ അദ്വിതീയമായി പരിഗണിക്കുകയും ചെയ്യുന്നു. അടിസ്ഥാനപരമായി, പ്രാദേശികമായി ഇൻസ്റ്റാൾ ചെയ്ത MySQL ഡാറ്റാബേസ് സെർവറിലേക്ക് ഒരു കണക്ഷൻ സ്ഥാപിക്കുന്നതിന് mysql ക്ലയന്റ് ലോക്കൽ ഹോസ്റ്റ് ഉപയോഗിക്കുന്നു.

ഇതുവരെ, tecmint ഉപയോക്താവിന് ഡാറ്റാബേസുകളുമായി സംവദിക്കാനുള്ള അനുമതികളൊന്നും ഇല്ല. വാസ്തവത്തിൽ, ഉപയോക്താവിന് MySQL ഷെല്ലിലേക്ക് പ്രവേശിക്കാൻ പോലും കഴിയില്ല.

ടേബിളുകൾ ഉൾപ്പെടെ എല്ലാ ഡാറ്റാബേസുകളിലേക്കും ഉപയോക്താവിന് പൂർണ്ണമായ ആക്സസ് അനുവദിക്കുന്നതിന്, റൺ ചെയ്യുക.

MariaDB [none]> GRANT ALL PRIVILEGES ON * . * TO 'tecmint'@'localhost';

മുകളിലെ കമാൻഡിൽ, ഉപയോക്താവിന് ആക്uസസ് ചെയ്യാൻ കഴിയുന്ന ഡാറ്റാബേസിലേക്കും പട്ടികയിലേക്കും നക്ഷത്രചിഹ്നങ്ങൾ പോയിന്റ് ചെയ്യുന്നു. ഇത് ഉപയോക്താവിന് ഡാറ്റാബേസിലെ എല്ലാ അവകാശങ്ങളും നൽകുന്നു - മറ്റ് ഡാറ്റാബേസുകളിലും ടേബിളുകളിലും ഉടനീളം എല്ലാ ജോലികളും നിർവഹിക്കുന്നത് ഉൾപ്പെടെ വായിക്കുക, എഴുതുക, എഡിറ്റ് ചെയ്യുക, എക്സിക്യൂട്ട് ചെയ്യുക.

ഇതുവരെ, ഞങ്ങൾ ഉപയോക്താവിന് ഡാറ്റാബേസിലേക്ക് പൂർണ്ണ ആക്സസ് അനുവദിച്ചിട്ടുണ്ട്. MySQL ആശയങ്ങൾ വിശദീകരിക്കുന്നതിൽ ഇത് സുലഭമാണെങ്കിലും, ഇത് നിങ്ങളുടെ ഡാറ്റാബേസുകൾക്ക് സുരക്ഷാ അപകടമുണ്ടാക്കുമെന്നതിനാൽ ഇത് സാധാരണയായി ശുപാർശ ചെയ്യുന്നില്ല. ഒരു ഹാക്കർ ഉപയോക്താവിന്റെ പാസ്uവേഡ് കൈവശം വച്ചാൽ എന്ത് സംഭവിക്കുമെന്ന് ചിന്തിക്കുക. ഞങ്ങൾ കൂടുതൽ മുന്നോട്ട് പോകുകയും അടുത്ത വിഭാഗത്തിൽ നിർദ്ദിഷ്ട അനുമതികൾ എങ്ങനെ നൽകാമെന്ന് ചർച്ച ചെയ്യുകയും ചെയ്യും.

നിങ്ങൾ ഉപയോക്താവിന് അനുമതികൾ നൽകിക്കഴിഞ്ഞാൽ, മാറ്റങ്ങൾ പ്രാബല്യത്തിൽ വരുന്നതിനായി കാണിച്ചിരിക്കുന്നതുപോലെ എല്ലാ പ്രത്യേകാവകാശങ്ങളും വീണ്ടും ലോഡുചെയ്യുക.

MariaDB [none]> FLUSH PRIVILEGES

വ്യത്യസ്ത ഉപയോക്തൃ അനുമതികൾ എങ്ങനെ നൽകാം

നിങ്ങൾക്ക് ഉപയോക്താക്കൾക്ക് നൽകാൻ കഴിയുന്ന സാധ്യമായ അനുമതികളുടെ ഒരു തകർച്ച ഇതാ:

  • എല്ലാ പ്രിവിലേജുകളും - മുമ്പ് കണ്ടതുപോലെ, ഇത് MySQL ഉപയോക്താവിന് ഒരു നിർദ്ദിഷ്ട ഡാറ്റാബേസിലേക്ക് പൂർണ്ണ ആക്സസ് നൽകുന്നു.
  • സൃഷ്ടിക്കുക - പുതിയ ഡാറ്റാബേസുകളോ പട്ടികകളോ സൃഷ്ടിക്കാൻ ഉപയോക്താക്കളെ അനുവദിക്കുന്നു.
  • ഡ്രോപ്പ് - ഡാറ്റാബേസുകളോ ഉപയോക്താക്കളോ ഇല്ലാതാക്കാൻ ഉപയോക്താക്കളെ പ്രാപ്തമാക്കുന്നു.
  • ഇൻസേർട്ട് - പട്ടികകളിൽ വരികൾ തിരുകാൻ ഉപയോക്താക്കളെ അനുവദിക്കുന്നു.
  • ഇല്ലാതാക്കുക - പട്ടികകളിൽ നിന്ന് വരികൾ ഇല്ലാതാക്കാൻ ഉപയോക്താക്കളെ അനുവദിക്കുന്നു.
  • തിരഞ്ഞെടുക്കുക - 'SELECT' അനുമതിയോടെ, ഉപയോക്താക്കൾക്ക് ഒരു പട്ടികയിലെ ഉള്ളടക്കങ്ങൾ വായിക്കാൻ കഴിയും.
  • അപ്ഡേറ്റ് - ഒരു പട്ടികയിലെ വരികൾ അപ്ഡേറ്റ് ചെയ്യാൻ ഉപയോക്താക്കളെ അനുവദിക്കുന്നു.
  • ഗ്രാന്റ് ഓപ്uഷൻ - ഉപയോക്താക്കൾക്ക് മറ്റ് ഉപയോക്താക്കളുടെ പ്രത്യേകാവകാശങ്ങൾ അനുവദിക്കാനോ നീക്കം ചെയ്യാനോ കഴിയും.

ഒരു നിർദ്ദിഷ്ട ഉപയോക്തൃ അനുമതി നൽകുന്നതിന്, വാക്യഘടന ഉപയോഗിക്കുക:

MariaDB [none]> GRANT permission_type ON database_name.table_name TO 'username'@'localhost';

കൂടാതെ, കാണിച്ചിരിക്കുന്നതുപോലെ ഒരൊറ്റ നക്ഷത്രചിഹ്നമുള്ള ഒരു ഡാറ്റാബേസിലെ എല്ലാ പട്ടികകൾക്കും നിങ്ങൾക്ക് അനുമതികൾ നൽകാം:

MariaDB [none]> GRANT permission_type ON database_name.* TO 'username'@'localhost';

ഉദാഹരണത്തിന്, testdb ഡാറ്റാബേസിന്റെ എല്ലാ ടേബിളുകളിലും 'tecmint' ഉപയോക്താവിന് SELECT അനുമതികൾ നൽകുന്നതിന്, കമാൻഡ് പ്രവർത്തിപ്പിക്കുക.

MariaDB [none]> GRANT SELECT ON testdb.* TO 'tecmint'@'localhost';

തുടർന്ന് മാറ്റങ്ങൾ പ്രാബല്യത്തിൽ വരുന്നതിന് പ്രത്യേകാവകാശങ്ങൾ ഫ്ലഷ് ചെയ്യുക.

MariaDB [none]> FLUSH PRIVILEGES;

കൂടാതെ, കാണിച്ചിരിക്കുന്നതുപോലെ ഒരു കോമ ഉപയോഗിച്ച് വേർതിരിച്ചുകൊണ്ട് നിങ്ങൾക്ക് ഒന്നിലധികം അനുമതികൾ ഒറ്റയടിക്ക് നൽകാം.

MariaDB [none]> GRANT INSERT, UPDATE ON testdb.* TO 'tecmint'@'localhost';

MySQL അനുമതികൾ എങ്ങനെ പിൻവലിക്കാം

ഒരു ഉപയോക്താവിൽ നിന്നുള്ള അനുമതികൾ പിൻവലിക്കാൻ, വാക്യഘടന ഉപയോഗിക്കുക:

MariaDB [none]> REVOKE permission_type ON database_name.table_name FROM 'username'@'localhost';

ഉദാഹരണത്തിന്, 'tecmint' എന്ന ഉപയോക്താവിൽ നിന്ന് INSERT അനുമതികൾ പിൻവലിക്കാൻ, കമാൻഡ് പ്രവർത്തിപ്പിക്കുക.

MariaDB [none]> REVOKE INSERT ON testdb.* FROM tecmint'@'localhost';
MariaDB [none]> FLUSH PRIVILEGES

ഒരു ഉപയോക്താവിന്റെ നിലവിലെ അനുമതികൾ പരിശോധിക്കാൻ, എക്സിക്യൂട്ട് ചെയ്യുക:

MariaDB [none]> SHOW GRANTS FOR 'username'@'localhost';

ചുവടെയുള്ള ഔട്ട്uപുട്ടിൽ നിന്ന്, testdb ഡാറ്റാബേസിൽ SELECT, UPDATE അവകാശങ്ങൾ മാത്രം അവശേഷിപ്പിച്ചുകൊണ്ട് 'tecmint' ഉപയോക്താവിൽ നിന്ന് INSERT അനുമതി നീക്കം ചെയ്തതായി നമുക്ക് കാണാൻ കഴിയും.

പുതിയ ഉപയോക്താവിനെ ഉപയോഗിച്ച് MySQL ഷെല്ലിലേക്ക് ലോഗിൻ ചെയ്യുന്നത് പരിശോധിക്കുന്നതിന്, ആദ്യം ലോഗ് ഔട്ട് ചെയ്യുക.

MariaDB [none]> quit;

തുടർന്ന് വീണ്ടും ലോഗിൻ ചെയ്യുക.

$ sudo mysql -u tecmint -p

ഷെൽ ആക്uസസ് ചെയ്യുന്നതിന് ഉപയോക്താവിന്റെ പാസ്uവേഡ് നൽകി ENTER അമർത്തുക.

ഒരു ഉപയോക്താവിനെ ഡ്രോപ്പ് ചെയ്യുന്നതിന്, ഒരു ഡാറ്റാബേസ് ഇല്ലാതാക്കുമ്പോൾ നിങ്ങൾ ചെയ്യുന്നതുപോലെ, DROP കമാൻഡ് ഉപയോഗിക്കുക.

MariaDB [none]> DROP USER 'username'@'localhost';

ഇനിപ്പറയുന്ന MySQL അനുബന്ധ ലേഖനങ്ങളും വായിക്കാൻ നിങ്ങൾ ആഗ്രഹിച്ചേക്കാം:

  • MySQL-ലെ സാധാരണ പിശകുകൾ പരിഹരിക്കുന്നതിനുള്ള ഉപയോഗപ്രദമായ നുറുങ്ങുകൾ
  • Mytop - Linux-ൽ MySQL/MariaDB പ്രകടനം നിരീക്ഷിക്കുന്നതിനുള്ള ഒരു ഉപയോഗപ്രദമായ ഉപകരണം
  • Linux-ൽ Default MySQL/MariaDB പോർട്ട് എങ്ങനെ മാറ്റാം
  • Linux-ൽ MySQL അല്ലെങ്കിൽ MariaDB റൂട്ട് പാസ്uവേഡ് എങ്ങനെ പുനഃസജ്ജമാക്കാം

ഇപ്പോൾ, നിങ്ങൾക്ക് MySQL ഡാറ്റാബേസ് സെർവറുകളിൽ ഉപയോക്താക്കളെ സൃഷ്uടിക്കാനും അനുമതികൾ അസൈൻ ചെയ്യാനോ അസാധുവാക്കാനോ കഴിയുമെന്ന് പ്രതീക്ഷിക്കുന്നു.