Wéi erstellt en neie Benotzer a gëtt Permissiounen a MySQL


MySQL ass e populäre a wäit benotzte Datebankmanagementsystem deen Daten späichert an organiséiert an erlaabt d'Benotzer se zréckzezéien. Et kënnt mat enger grousser Palette vun Optiounen déi Benotzer gewësse Permissiounen op Dëscher an Datenbanken ginn.

An dësem Guide léiert Dir wéi Dir en neie Benotzer erstellt an Permissiounen an der MySQL Datebank gëtt.

Wéi erstellt en neie Benotzer an MySQL

Fir en neie Benotzer ze kreéieren, loggt Iech als éischt an d'MySQL Shell un.

$ sudo mysql -u root -p

Gitt d'Sudo Passwuert gefollegt vum Passwuert dat geliwwert gouf wann Dir d'MySQL Datebank opstellt an dréckt ENTER. Duerno kritt Dir dës Ufro.

Fir en neie Benotzer ze kreéieren, benotzt d'Syntax hei ënnen:

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

Zum Beispill, fir en neie Benotzer mam Numm 'tecmint' an der Datebank ze kreéieren, rufft de Kommando op:

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

Wann Dir e Benotzer lokal bäidréit, dat heescht, um System deen Dir MySQL installéiert hutt, gëtt de Host vum Benotzer als localhost uginn, an net d'IP Adress. D'Schlësselwuert 'localhost' iwwersetzt op 'dëse Computer' an MySQL behandelt et eenzegaarteg. Prinzipiell gëtt localhost vum mysql Client benotzt fir eng Verbindung mam lokal installéierten MySQL Datebankserver opzebauen.

Bis elo huet den tecmint Benotzer keng Permissiounen fir mat den Datenbanken ze interagéieren. Tatsächlech kann de Benotzer net emol op d'MySQL Shell zougräifen.

Fir de Benotzer voll Zougang zu all Datenbanken ze ginn, dorënner d'Dëscher, lafen.

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

Am Kommando hei uewen weisen d'Asterisken op d'Datebank an d'Tabell respektiv op déi de Benotzer Zougang kann. Et gëtt dem Benotzer all d'Rechter op der Datebank - liesen, schreiwen, änneren an ausféieren inklusiv all d'Aufgaben iwwer aner Datenbanken an Dëscher auszeféieren.

Bis elo hu mir de Benotzer voll Zougang zu der Datebank ginn. Och wann dëst praktesch ass fir MySQL Konzepter z'erklären, ass et allgemeng net recommandéiert well et e Sécherheetsrisiko fir Är Datenbanken kéint stellen. Denkt just un wat ka geschéien wann en Hacker d'Passwuert vum Benotzer kritt. Mir wäerte weidergoen an diskutéieren wéi mir spezifesch Permissiounen an der nächster Sektioun zouginn.

Wann Dir fäerdeg sidd Permissiounen un de Benotzer ze ginn, lued all Privilegien nei wéi gewisen fir d'Ännerungen a Kraaft ze huelen.

MariaDB [none]> FLUSH PRIVILEGES

Wéi verschidde Benotzer Permissiounen ze ginn

Hei ass en Decompte vun de méigleche Permissiounen déi Dir Benotzer zouginn:

  • ALL PRIVILEGES - Wéi virdru gesinn, gëtt dëst engem MySQL Benotzer voll Zougang zu enger spezifescher Datebank.
  • CREATE - Erlaabt de Benotzer nei Datenbanken oder Dëscher ze kreéieren.
  • DROP - Erlaabt de Benotzer Datenbanken oder Benotzer ze läschen.
  • INSERT - Erlaabt d'Benotzer Reihen an Tabellen anzeginn.
  • LËSCHEN - Erlaabt de Benotzer Reihen aus Dëscher ze läschen.
  • SELECT - mat 'SELECT' Erlaabnis kënnen d'Benotzer den Inhalt vun enger Tabell liesen.
  • UPDATE - Erlaabt d'Benotzer d'Reihen an enger Tabell ze aktualiséieren.
  • GENT OPTION - D'Benotzer kënnen d'Privilegien vun anere Benotzer zouginn oder ewechhuelen.

Fir eng spezifesch Benotzererlaabnes ze ginn, benotzt d'Syntax:

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

Zousätzlech kënnt Dir Permissiounen un all Dëscher an enger Datebank mat engem eenzegen Asterisk Symbol wéi gewisen:

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

Zum Beispill, fir SELECT Permissiounen dem 'tecmint' Benotzer op all Dëscher vun der Datebank testdb ze ginn, lafen de Kommando.

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

Da spülen Privilegien fir d'Ännerungen a Kraaft ze huelen.

MariaDB [none]> FLUSH PRIVILEGES;

Zousätzlech kënnt Dir verschidde Permissiounen gläichzäiteg zouginn andeems Dir se mat engem Komma trennt wéi gewisen.

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

Wéi zréckzéien MySQL Permissiounen

Fir Permissiounen vun engem Benotzer zréckzezéien, benotzt d'Syntax:

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

Zum Beispill, fir INSERT Permissiounen vum Benotzer 'tecmint' zréckzezéien, fuert de Kommando.

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

Fir e Bléck op déi aktuell Permissiounen vun engem Benotzer ze hunn, fuert aus:

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

Vun der Ausgab hei drënner kënne mir gesinn datt d'INSERT Erlaabnis vum 'tecmint' Benotzer ausgeschloss gouf a léisst nëmmen SELECT an UPDATE Rechter op der testdb Datebank.

Fir d'Umeldung an d'MySQL Shell mat dem neie Benotzer ze testen, loggt Iech als éischt aus.

MariaDB [none]> quit;

Da Login erëm.

$ sudo mysql -u tecmint -p

Gitt d'Passwuert vum Benotzer an dréckt ENTER fir op d'Schuel ze kommen.

Fir e Benotzer erofzesetzen, benotzt den DROP Kommando, sou wéi Dir géift wann Dir eng Datebank läscht.

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

Dir kënnt och gär déi folgend MySQL-relatéiert Artikelen liesen:

  • Nëtzlech Tipps fir gemeinsame Feeler am MySQL ze léisen
  • Mytop - E Nëtzlech Tool fir d'Iwwerwaachung vu MySQL/MariaDB Performance am Linux
  • Wéi den Default MySQL/MariaDB Port am Linux z'änneren
  • Wéi reset ech MySQL oder MariaDB Root Passwuert a Linux

Hoffentlech, elo kënnt Dir Benotzer an Äre MySQL Datebankserver erstellen a bequem Permissiounen zouginn oder zréckzéien.