ວິທີການສ້າງສິດ ໃໝ່ ສຳ ລັບຜູ້ໃຊ້ແລະການອະນຸຍາດໃນ MySQL


MySQL ແມ່ນລະບົບການຄຸ້ມຄອງຖານຂໍ້ມູນທີ່ໄດ້ຮັບຄວາມນິຍົມແລະ ນຳ ໃຊ້ຢ່າງກວ້າງຂວາງເຊິ່ງເກັບແລະຈັດແຈງຂໍ້ມູນແລະຊ່ວຍໃຫ້ຜູ້ໃຊ້ສາມາດເກັບຂໍ້ມູນໄດ້. ມັນມາພ້ອມກັບຫລາຍໆທາງເລືອກທີ່ໃຫ້ສິດແກ່ຜູ້ໃຊ້ທີ່ແນ່ນອນຕໍ່ຕາຕະລາງແລະຖານຂໍ້ມູນ.

ໃນຄູ່ມືນີ້, ທ່ານຈະໄດ້ຮຽນຮູ້ວິທີການສ້າງຜູ້ໃຊ້ ໃໝ່ ແລະອະນຸຍາດໃນຖານຂໍ້ມູນ MySQL.

ວິທີການສ້າງຜູ້ໃຊ້ ໃໝ່ ໃນ MySQL

ເພື່ອສ້າງຜູ້ໃຊ້ ໃໝ່ ເຂົ້າສູ່ລະບົບ MySQL shell ກ່ອນ.

$ sudo mysql -u root -p

ໃຫ້ລະຫັດລັບ sudo ຕາມດ້ວຍລະຫັດຜ່ານທີ່ໃຫ້ໃນເວລາທີ່ຕັ້ງຖານຂໍ້ມູນ MySQL ແລະກົດ ENTER. ຫລັງຈາກນັ້ນ, ທ່ານຈະໄດ້ຮັບ ຄຳ ແນະ ນຳ ນີ້.

ເພື່ອສ້າງຜູ້ໃຊ້ ໃໝ່, ໃຊ້ syntax ທີ່ສະແດງຢູ່ດ້ານລຸ່ມ:

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

ຍົກຕົວຢ່າງ, ເພື່ອສ້າງຜູ້ໃຊ້ ໃໝ່ ທີ່ມີຊື່ວ່າ 'tecmint' ພາຍໃນຖານຂໍ້ມູນ, ໃຫ້ຂຽນ ຄຳ ສັ່ງ:

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

ເມື່ອເພີ່ມຜູ້ໃຊ້ຢູ່ໃນທ້ອງຖິ່ນເຊັ່ນ: ລະບົບທີ່ທ່ານໄດ້ຕິດຕັ້ງ MySQL, ເຈົ້າພາບຂອງຜູ້ໃຊ້ຖືກລະບຸເປັນ localhost, ແລະບໍ່ແມ່ນທີ່ຢູ່ IP. ຄຳ ວ່າ ‘localhost’ ແປວ່າ ‘ຄອມພິວເຕີນີ້’ ແລະ MySQL ປະຕິບັດຕໍ່ມັນເປັນເອກະລັກ. ໂດຍພື້ນຖານແລ້ວ, localhost ແມ່ນໃຊ້ໂດຍລູກຄ້າ mysql ເພື່ອສ້າງການເຊື່ອມຕໍ່ກັບເຄື່ອງແມ່ຂ່າຍຖານຂໍ້ມູນ MySQL ທີ່ຕິດຕັ້ງຢູ່ໃນທ້ອງຖິ່ນ.

ເຖິງຕອນນີ້, ຜູ້ໃຊ້ tecmint ບໍ່ມີສິດໃນການພົວພັນກັບຖານຂໍ້ມູນ. ໃນຄວາມເປັນຈິງ, ຜູ້ໃຊ້ບໍ່ສາມາດເຂົ້າເຖິງແກະ MySQL ໄດ້.

ເພື່ອໃຫ້ຜູ້ໃຊ້ສາມາດເຂົ້າເຖິງຖານຂໍ້ມູນທັງ ໝົດ, ລວມທັງຕາຕະລາງ, ແລ່ນ.

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

ໃນ ຄຳ ສັ່ງຂ້າງເທິງ, ດາວເຄາະຊີ້ໄປທີ່ຖານຂໍ້ມູນແລະຕາຕະລາງຕາມ ລຳ ດັບເຊິ່ງຜູ້ໃຊ້ສາມາດເຂົ້າເຖິງໄດ້. ມັນໃຫ້ສິດແກ່ຜູ້ໃຊ້ທຸກຢ່າງໃນຖານຂໍ້ມູນ - ອ່ານ, ຂຽນ, ແກ້ໄຂແລະປະຕິບັດລວມທັງການປະຕິບັດທຸກ ໜ້າ ວຽກໃນຖານຂໍ້ມູນແລະຕາຕະລາງອື່ນໆເຊັ່ນກັນ.

ເຖິງຕອນນີ້, ພວກເຮົາໄດ້ອະນຸຍາດໃຫ້ຜູ້ໃຊ້ເຂົ້າເຖິງຖານຂໍ້ມູນຢ່າງເຕັມທີ່. ໃນຂະນະທີ່ສິ່ງນີ້ມີປະໂຫຍດຕໍ່ການອະທິບາຍແນວຄວາມຄິດຂອງ MySQL, ໂດຍທົ່ວໄປແລ້ວມັນບໍ່ໄດ້ຖືກແນະ ນຳ ເພາະມັນສາມາດສ້າງຄວາມສ່ຽງດ້ານຄວາມປອດໄພໃຫ້ກັບຖານຂໍ້ມູນຂອງທ່ານ. ພຽງແຕ່ຄິດເຖິງສິ່ງທີ່ອາດຈະເກີດຂື້ນຖ້າແຮກເກີຈັບລະຫັດລັບຂອງຜູ້ໃຊ້. ພວກເຮົາຈະ ດຳ ເນີນການຕໍ່ໄປແລະປຶກສາຫາລືກ່ຽວກັບວິທີການ ກຳ ນົດສິດອະນຸຍາດສະເພາະໃນພາກຕໍ່ໄປ.

ເມື່ອທ່ານເຮັດ ສຳ ເລັດການມອບ ໝາຍ ສິດໃຫ້ກັບຜູ້ໃຊ້, ໃຫ້ສິດທິພິເສດ ໃໝ່ ທັງ ໝົດ ຕາມທີ່ສະແດງໃຫ້ເຫັນເພື່ອໃຫ້ການປ່ຽນແປງມີຜົນບັງຄັບໃຊ້.

MariaDB [none]> FLUSH PRIVILEGES

ວິທີການໃຫ້ສິດແກ່ຜູ້ໃຊ້ທີ່ແຕກຕ່າງກັນ

ນີ້ແມ່ນລາຍລະອຽດຂອງການອະນຸຍາດທີ່ເປັນໄປໄດ້ທີ່ທ່ານສາມາດອະນຸຍາດໃຫ້ຜູ້ໃຊ້:

  • ລິຂະສິດທັງ ໝົດ - ດັ່ງທີ່ໄດ້ເຫັນຜ່ານມາ, ນີ້ໃຫ້ຜູ້ໃຊ້ MySQL ເຂົ້າເຖິງຖານຂໍ້ມູນສະເພາະ.
  • ສ້າງ - ອະນຸຍາດໃຫ້ຜູ້ໃຊ້ສ້າງຖານຂໍ້ມູນຫຼືຕາຕະລາງ ໃໝ່.
  • ຢຸດ - ໃຫ້ຜູ້ໃຊ້ສາມາດລຶບຖານຂໍ້ມູນຫລືຜູ້ໃຊ້.
  • INSERT - ອະນຸຍາດໃຫ້ຜູ້ໃຊ້ສາມາດໃສ່ແຖວໃນຕາຕະລາງ.
  • DELETE - ອະນຸຍາດໃຫ້ຜູ້ໃຊ້ສາມາດລຶບແຖວຈາກຕາຕະລາງ.
  • ເລືອກ - ດ້ວຍການອະນຸຍາດ ‘SELECT’, ຜູ້ໃຊ້ສາມາດອ່ານເນື້ອໃນຂອງຕາຕະລາງໄດ້.
  • ປັບປຸງໃຫ້ທັນ - ອະນຸຍາດໃຫ້ຜູ້ໃຊ້ສາມາດອັບເດດແຖວເກັດທີ່ຢູ່ໃນຕາຕະລາງ.
  • ທາງເລືອກ GRANT - ຜູ້ໃຊ້ສາມາດອະນຸຍາດຫຼືລົບສິດພິເສດຂອງຜູ້ໃຊ້ອື່ນໆ.

ເພື່ອໃຫ້ການອະນຸຍາດຂອງຜູ້ໃຊ້ສະເພາະ, ໃຊ້ syntax:

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

ນອກຈາກນັ້ນ, ທ່ານສາມາດ ກຳ ນົດສິດໃນຕາຕະລາງທັງ ໝົດ ໃນຖານຂໍ້ມູນທີ່ມີສັນຍາລັກດາວດຽວດັ່ງທີ່ສະແດງ:

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

ຍົກຕົວຢ່າງ, ເພື່ອ ກຳ ນົດສິດອະນຸຍາດ SELECT ໃຫ້ຜູ້ໃຊ້ 'tecmint' ໃນຕາຕະລາງທັງ ໝົດ ຂອງຖານຂໍ້ມູນ testdb, ດຳ ເນີນການ ຄຳ ສັ່ງ.

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

ແລ້ວປ່ອຍສິດທິພິເສດ ສຳ ລັບການປ່ຽນແປງໃຫ້ມີຜົນ.

MariaDB [none]> FLUSH PRIVILEGES;

ນອກຈາກນັ້ນ, ທ່ານຍັງສາມາດ ກຳ ນົດສິດຫຼາຍໆຄັ້ງໃນເວລາດຽວກັນໂດຍການແຍກພວກມັນດ້ວຍຈຸດ, ດັ່ງທີ່ສະແດງ.

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

ວິທີການຖອນຄືນການອະນຸຍາດ MySQL

ເພື່ອລົບລ້າງສິດອະນຸຍາດຈາກຜູ້ໃຊ້, ໃຊ້ syntax:

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

ຍົກຕົວຢ່າງ, ເພື່ອຖອນສິດໃນ INSERT ຈາກຜູ້ໃຊ້ ‘tecmint’, ດຳ ເນີນການ ຄຳ ສັ່ງ.

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

ເພື່ອເບິ່ງທີ່ສິດຂອງຜູ້ໃຊ້ໃນປະຈຸບັນ, ດຳ ເນີນການ:

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

ຈາກຜົນໄດ້ຮັບຂ້າງລຸ່ມນີ້, ພວກເຮົາສາມາດເຫັນໄດ້ວ່າສິດອະນຸຍາດ INSERT ໄດ້ຖືກໄລ່ອອກຈາກຜູ້ໃຊ້ 'tecmint' ໂດຍປ່ອຍໃຫ້ມີສິດທິ SELECT ແລະ UPDATE ເທົ່ານັ້ນໃນຖານຂໍ້ມູນ testdb.

ເພື່ອທົດສອບການເຂົ້າລະບົບເຂົ້າໄປໃນຫອຍ MySQL ໂດຍການ ນຳ ໃຊ້ຜູ້ໃຊ້ ໃໝ່, ທຳ ອິດອອກຈາກລະບົບ.

MariaDB [none]> quit;

ຫຼັງຈາກນັ້ນເຂົ້າສູ່ລະບົບອີກຄັ້ງ.

$ sudo mysql -u tecmint -p

ໃຫ້ລະຫັດລັບຂອງຜູ້ໃຊ້ແລະກົດ ENTER ເພື່ອເຂົ້າໃຊ້ຫອຍ.

ການລຸດຜູ້ໃຊ້, ໃຫ້ໃຊ້ ຄຳ ສັ່ງ DROP, ຄືກັບທີ່ທ່ານຕ້ອງການເມື່ອລຶບຖານຂໍ້ມູນ.

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

ທ່ານອາດຈະຢາກອ່ານບົດຄວາມທີ່ກ່ຽວຂ້ອງກັບ MySQL ຕໍ່ໄປນີ້:

  • ຄຳ ແນະ ນຳ ທີ່ເປັນປະໂຫຍດໃນການແກ້ໄຂຂໍ້ຜິດພາດທົ່ວໄປໃນ MySQL
  • Mytop - ເຄື່ອງມືທີ່ມີປະໂຫຍດ ສຳ ລັບການກວດສອບ MySQL/MariaDB Performance ໃນ Linux
  • ວິທີການປ່ຽນພອດ MySQL/MariaDB ໃນ Linux
  • ວິທີການຕັ້ງຄ່າລະຫັດຜ່ານລະຫັດ MySQL ຫຼື MariaDB ໃນ Linux

ຫວັງວ່າ, ດຽວນີ້, ທ່ານສາມາດສ້າງຜູ້ໃຊ້ໃນເຄື່ອງແມ່ຂ່າຍຖານຂໍ້ມູນ MySQL ຂອງທ່ານແລະມອບ ໝາຍ ຫລືຖອນສິດອະນຸຍາດຢ່າງສະດວກສະບາຍ.