Hvernig á að búa til nýjan notanda og veita heimildir í MySQL


MySQL er vinsælt og mikið notað gagnagrunnsstjórnunarkerfi sem geymir og skipuleggur gögn og gerir notendum kleift að sækja þau. Það kemur með mikið úrval af valkostum sem veita notendum ákveðnar heimildir fyrir töflur og gagnagrunna.

Í þessari handbók muntu læra hvernig á að búa til nýjan notanda og veita heimildir í MySQL gagnagrunninum.

Hvernig á að búa til nýjan notanda í MySQL

Til að búa til nýjan notanda skráðu þig fyrst inn á MySQL skelina.

$ sudo mysql -u root -p

Gefðu upp sudo lykilorðið á eftir lykilorðinu sem gafst upp þegar MySQL gagnagrunnurinn var settur upp og ýttu á ENTER. Eftir það færðu þessa vísbendingu.

Til að búa til nýjan notanda, notaðu setningafræðina sem sýnd er hér að neðan:

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

Til dæmis, til að búa til nýjan notanda sem heitir 'tecmint' í gagnagrunninum, kallarðu fram skipunina:

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

Þegar notanda er bætt við á staðnum, þ.e.a.s. á kerfinu sem þú hefur sett upp MySQL, er gestgjafi notandans tilgreindur sem localhost, en ekki IP-talan. Leitarorðið „localhost“ þýðir „þessi tölva“ og MySQL meðhöndlar það einstaklega. Í grundvallaratriðum er localhost notað af mysql biðlaranum til að koma á tengingu við staðbundið uppsettan MySQL gagnagrunnsþjón.

Enn sem komið er hefur tecmint notandinn engar heimildir til að hafa samskipti við gagnagrunnana. Reyndar getur notandinn ekki einu sinni fengið aðgang að MySQL skelinni.

Til að veita notandanum fullan aðgang að öllum gagnagrunnum, þar á meðal töflunum, keyrðu.

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

Í skipuninni hér að ofan benda stjörnurnar á gagnagrunninn og töfluna í sömu röð sem notandinn hefur aðgang að. Það veitir notandanum öll réttindi á gagnagrunninum - lesa, skrifa, breyta og framkvæma, þar á meðal að framkvæma öll verkefni í öðrum gagnagrunnum og töflum.

Hingað til höfum við veitt notandanum fullan aðgang að gagnagrunninum. Þó að þetta sé hentugt við að útskýra MySQL hugtök, er almennt ekki mælt með því þar sem það gæti valdið öryggisáhættu fyrir gagnagrunna þína. Hugsaðu bara um hvað gæti gerst ef tölvuþrjótur næði lykilorði notandans. Við munum halda áfram og ræða hvernig á að úthluta sérstökum heimildum í næsta kafla.

Þegar þú ert búinn að úthluta heimildum til notanda skaltu endurhlaða öll réttindi eins og sýnt er til að breytingarnar taki gildi.

MariaDB [none]> FLUSH PRIVILEGES

Hvernig á að veita mismunandi notendaheimildir

Hér er sundurliðun á mögulegum heimildum sem þú getur veitt notendum:

  • ÖLL FORréttindi – Eins og áður hefur sést veitir þetta MySQL notanda fullan aðgang að tilteknum gagnagrunni.
  • BÚA TIL – Leyfir notendum að búa til nýja gagnagrunna eða töflur.
  • DROP – Gerir notendum kleift að eyða gagnagrunnum eða notendum.
  • INSERT – Leyfir notendum að setja inn línur í töflur.
  • DELETE – Leyfir notendum að eyða línum úr töflum.
  • SELECT – með „SELECT“ heimild geta notendur lesið innihald töflu.
  • UPPFÆRSLA – Leyfir notendum að uppfæra línurnar í töflu.
  • STYRKA VALKOSTUR – Notendur geta veitt eða fjarlægt réttindi annarra notenda.

Notaðu setningafræði til að veita tilteknum notandaheimildum:

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

Að auki geturðu úthlutað heimildum fyrir allar töflur í gagnagrunni með einni stjörnu eins og sýnt er:

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

Til dæmis, til að úthluta SELECT heimildum til „tecmint“ notanda á öllum töflum gagnagrunnsins testdb, keyrðu skipunina.

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

Skoðaðu síðan réttindi til að breytingarnar taki gildi.

MariaDB [none]> FLUSH PRIVILEGES;

Að auki geturðu úthlutað mörgum heimildum í einu með því að aðgreina þær með kommu eins og sýnt er.

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

Hvernig á að afturkalla MySQL leyfi

Til að afturkalla heimildir frá notanda, notaðu setningafræðina:

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

Til dæmis, til að afturkalla INSERT heimildir frá notandanum 'tecmint' skaltu keyra skipunina.

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

Til að kíkja á núverandi heimildir notanda skaltu framkvæma:

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

Af úttakinu hér að neðan getum við séð að INSERT leyfið hefur verið fjarlægt frá 'tecmint' notandanum og skilur aðeins eftir SELECT og UPDATE réttindi á testdb gagnagrunninum.

Til að prófa að skrá þig inn á MySQL skelina með því að nota nýja notandann skaltu fyrst skrá þig út.

MariaDB [none]> quit;

Skráðu þig svo aftur inn.

$ sudo mysql -u tecmint -p

Gefðu upp lykilorð notandans og ýttu á ENTER til að fá aðgang að skelinni.

Til að sleppa notanda, notaðu DROP skipunina, alveg eins og þegar þú eyðir gagnagrunni.

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

Þú gætir líka viljað lesa eftirfarandi MySQL tengdar greinar:

  • Gagnlegar ráðleggingar til að leysa algengar villur í MySQL
  • Mytop – Gagnlegt tól til að fylgjast með MySQL/MariaDB frammistöðu í Linux
  • Hvernig á að breyta sjálfgefna MySQL/MariaDB tengi í Linux
  • Hvernig á að endurstilla MySQL eða MariaDB rót lykilorð í Linux

Vonandi geturðu nú búið til notendur á MySQL gagnagrunnsþjónum þínum og úthlutað eða afturkallað heimildir á þægilegan hátt.