Jinsi ya Kuunda Mtumiaji Mpya na Ruhusa za Ruzuku katika MySQL


MySQL ni mfumo maarufu na unaotumika sana wa usimamizi wa hifadhidata ambao huhifadhi na kupanga data na kuruhusu watumiaji kuzirejesha. Inakuja na safu kubwa ya chaguo ambazo huwapa watumiaji ruhusa fulani kwa majedwali na hifadhidata.

Katika mwongozo huu, utajifunza jinsi ya kuunda mtumiaji mpya na kutoa ruhusa katika hifadhidata ya MySQL.

Jinsi ya Kuunda Mtumiaji Mpya katika MySQL

Ili kuunda mtumiaji mpya ingia kwanza kwenye ganda la MySQL.

$ sudo mysql -u root -p

Toa nenosiri la sudo likifuatiwa na nenosiri lililotolewa wakati wa kusanidi hifadhidata ya MySQL na gonga ENTER. Baada ya hapo, utapata kidokezo hiki.

Ili kuunda mtumiaji mpya, tumia sintaksia iliyoonyeshwa hapa chini:

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

Kwa mfano, kuunda mtumiaji mpya anayeitwa 'tecmint' ndani ya hifadhidata, omba amri:

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

Unapoongeza mtumiaji ndani ya nchi yaani, kwenye mfumo ambao umesakinisha MySQL, seva pangishi ya mtumiaji inabainishwa kama mwenyeji wa ndani, na si anwani ya IP. Neno kuu 'localhost' hutafsiri kuwa 'kompyuta hii' na MySQL huishughulikia kwa njia ya kipekee. Kimsingi, localhost hutumiwa na mteja wa mysql kuanzisha muunganisho kwa seva ya hifadhidata ya MySQL iliyosakinishwa ndani.

Kufikia sasa, mtumiaji wa tecmint hana ruhusa yoyote ya kuingiliana na hifadhidata. Kwa kweli, mtumiaji hawezi hata kufikia ganda la MySQL.

Ili kumpa mtumiaji ufikiaji kamili wa hifadhidata zote, pamoja na jedwali, endesha.

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

Katika amri hapo juu, nyota huelekeza kwenye hifadhidata na jedwali mtawalia ambayo mtumiaji anaweza kufikia. Humpa mtumiaji haki zote kwenye hifadhidata - kusoma, kuandika, kuhariri, na kutekeleza ikiwa ni pamoja na kutekeleza majukumu yote kwenye hifadhidata na majedwali mengine pia.

Kufikia sasa, tumempa mtumiaji ufikiaji kamili wa hifadhidata. Ingawa hii ni muhimu katika kuelezea dhana za MySQL, kwa ujumla haipendekezwi kwani inaweza kuleta hatari ya usalama kwa hifadhidata zako. Hebu fikiria nini kinaweza kutokea ikiwa mdukuzi atapata nenosiri la mtumiaji. Tutaendelea zaidi na kujadili jinsi ya kugawa ruhusa maalum katika sehemu inayofuata.

Ukimaliza kukabidhi ruhusa kwa mtumiaji, pakia upya haki zote kama inavyoonyeshwa ili mabadiliko yaanze kutumika.

MariaDB [none]> FLUSH PRIVILEGES

Jinsi ya Kutoa Ruhusa Tofauti za Mtumiaji

Huu hapa ni muhtasari wa ruhusa zinazowezekana ambazo unaweza kuwapa watumiaji:

  • MAADILI YOTE - Kama ilivyoonekana hapo awali, hii humpa mtumiaji wa MySQL ufikiaji kamili kwa hifadhidata mahususi.
  • UNDA - Huruhusu watumiaji kuunda hifadhidata mpya au jedwali.
  • DROP - Huwawezesha watumiaji kufuta hifadhidata au watumiaji.
  • WEKA - Huruhusu watumiaji kuingiza safu katika majedwali.
  • FUTA - Huruhusu watumiaji kufuta safu mlalo kutoka kwa jedwali.
  • CHAGUA - kwa ruhusa ya 'CHAGUA', watumiaji wanaweza kusoma maudhui ya jedwali.
  • USASISHA - Huruhusu watumiaji kusasisha safu mlalo katika jedwali.
  • CHAGUO LA KUTOA - Watumiaji wanaweza kutoa au kuondoa mapendeleo ya watumiaji wengine.

Ili kutoa ruhusa maalum ya mtumiaji, tumia syntax:

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

Zaidi ya hayo, unaweza kupeana ruhusa kwa majedwali yote katika hifadhidata yenye ishara moja ya kinyota kama inavyoonyeshwa:

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

Kwa mfano, kupeana ruhusa za SELECT kwa mtumiaji wa 'tecmint' kwenye majedwali yote ya hifadhidata testdb, endesha amri.

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

Kisha futa mapendeleo ili mabadiliko yaanze kutumika.

MariaDB [none]> FLUSH PRIVILEGES;

Zaidi ya hayo, unaweza kukabidhi ruhusa nyingi popote pale kwa kuzitenganisha na koma kama inavyoonyeshwa.

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

Jinsi ya Kufuta Ruhusa za MySQL

Ili kubatilisha ruhusa kutoka kwa mtumiaji, tumia syntax:

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

Kwa mfano, ili kubatilisha INGIZA ruhusa kutoka kwa mtumiaji ‘tecmint’, endesha amri.

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

Ili kutazama ruhusa za sasa za mtumiaji, tekeleza:

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

Kutoka kwa matokeo yaliyo hapa chini, tunaweza kuona kwamba ruhusa ya INSERT imefutwa kutoka kwa mtumiaji wa 'tecmint' na kuacha tu haki za CHAGUA na KUSASISHA kwenye hifadhidata ya testdb.

Ili kujaribu kuingia kwenye ganda la MySQL kwa kutumia mtumiaji mpya, kwanza toka.

MariaDB [none]> quit;

Kisha ingia tena.

$ sudo mysql -u tecmint -p

Toa nenosiri la mtumiaji na ugonge ENTER ili kufikia shell.

Ili kuacha mtumiaji, tumia amri ya DROP, kama vile ungefanya wakati wa kufuta hifadhidata.

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

Unaweza pia kupenda kusoma nakala zifuatazo zinazohusiana na MySQL:

  • Vidokezo Muhimu vya Kutatua Hitilafu za Kawaida katika MySQL
  • Mytop - Zana Muhimu ya Kufuatilia Utendaji wa MySQL/MariaDB katika Linux
  • Jinsi ya Kubadilisha Mlango Chaguomsingi wa MySQL/MariaDB katika Linux
  • Jinsi ya Kuweka Upya MySQL au MariaDB Root Password katika Linux

Tunatumahi, kufikia sasa, unaweza kuunda watumiaji katika seva zako za hifadhidata ya MySQL na kugawa au kubatilisha ruhusa kwa raha.