Com crear un usuari nou i concedir permisos a MySQL


MySQL és un sistema de gestió de bases de dades popular i àmpliament utilitzat que emmagatzema i organitza dades i permet als usuaris recuperar-les. Ve amb una àmplia gamma d'opcions que atorguen als usuaris certs permisos a taules i bases de dades.

En aquesta guia, aprendràs a crear un nou usuari i a concedir permisos a la base de dades MySQL.

Com crear un usuari nou a MySQL

Per crear un usuari nou, primer inicieu sessió al shell de MySQL.

$ sudo mysql -u root -p

Proporcioneu la contrasenya sudo seguida de la contrasenya proporcionada en configurar la base de dades MySQL i premeu ENTER. A partir de llavors, obtindreu aquesta indicació.

Per crear un usuari nou, utilitzeu la sintaxi que es mostra a continuació:

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

Per exemple, per crear un usuari nou anomenat tecmint dins de la base de dades, invoqueu l'ordre:

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

Quan afegiu un usuari localment, és a dir, al sistema que heu instal·lat MySQL, l'amfitrió de l'usuari s'especifica com a host local i no l'adreça IP. La paraula clau localhost es tradueix a aquest ordinador i MySQL la tracta de manera única. Bàsicament, el client mysql utilitza localhost per establir una connexió amb el servidor de bases de dades MySQL instal·lat localment.

Fins ara, l'usuari de tecmint no té cap permís per interactuar amb les bases de dades. De fet, l'usuari ni tan sols pot accedir al shell de MySQL.

Per atorgar a l'usuari accés complet a totes les bases de dades, incloses les taules, executeu.

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

A l'ordre anterior, els asteriscs assenyalen la base de dades i la taula respectivament a les quals l'usuari pot accedir. Atorga a l'usuari tots els drets de la base de dades: llegir, escriure, editar i executar, inclosa la realització de totes les tasques en altres bases de dades i taules.

Fins ara, hem concedit a l'usuari accés complet a la base de dades. Tot i que això és útil per explicar els conceptes de MySQL, generalment no es recomana, ja que podria suposar un risc de seguretat per a les vostres bases de dades. Només penseu en què podria passar si un pirata informàtic aconseguia la contrasenya de l'usuari. Seguirem endavant i discutirem com assignar permisos específics a la secció següent.

Quan hàgiu acabat d'assignar permisos a l'usuari, torneu a carregar tots els privilegis tal com es mostra perquè els canvis tinguin efecte.

MariaDB [none]> FLUSH PRIVILEGES

Com atorgar permisos d'usuari diferents

Aquí teniu un desglossament dels possibles permisos que podeu concedir als usuaris:

  • TOTS ELS PRIVILEGIS: com s'ha vist anteriorment, això concedeix a un usuari de MySQL accés complet a una base de dades específica.
  • CREAR: permet als usuaris crear bases de dades o taules noves.
  • DROP: permet als usuaris suprimir bases de dades o usuaris.
  • INSERT: permet als usuaris inserir files a les taules.
  • ELIMINAR: permet als usuaris suprimir files de les taules.
  • SELECT: amb el permís SELECT, els usuaris poden llegir el contingut d'una taula.
  • ACTUALITZACIÓ: permet als usuaris actualitzar les files d'una taula.
  • OPCIÓ GRANT: els usuaris poden concedir o eliminar els privilegis d'altres usuaris.

Per atorgar un permís d'usuari específic, utilitzeu la sintaxi:

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

A més, podeu assignar permisos a totes les taules d'una base de dades amb un únic símbol d'asterisc com es mostra:

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

Per exemple, per assignar permisos SELECT a l'usuari tecmint a totes les taules de la base de dades testdb, executeu l'ordre.

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

A continuació, esborreu els privilegis perquè els canvis tinguin efecte.

MariaDB [none]> FLUSH PRIVILEGES;

A més, podeu assignar diversos permisos alhora separant-los amb una coma tal com es mostra.

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

Com revocar els permisos de MySQL

Per revocar els permisos d'un usuari, utilitzeu la sintaxi:

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

Per exemple, per revocar els permisos INSERT de l'usuari tecmint, executeu l'ordre.

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

Per fer una ullada als permisos actuals d'un usuari, executeu:

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

A la sortida següent, podem veure que el permís INSERT s'ha eliminat de l'usuari tecmint deixant només els drets SELECT i UPDATE a la base de dades testdb.

Per provar l'inici de sessió a l'intèrpret d'ordres de MySQL amb l'usuari nou, primer tanqueu la sessió.

MariaDB [none]> quit;

A continuació, torneu a iniciar sessió.

$ sudo mysql -u tecmint -p

Proporcioneu la contrasenya de l'usuari i premeu ENTER per accedir al shell.

Per eliminar un usuari, utilitzeu l'ordre DROP, tal com ho faríeu quan suprimiu una base de dades.

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

També us agradaria llegir els següents articles relacionats amb MySQL:

  • Consells útils per resoldre els errors habituals a MySQL
  • Mytop: una eina útil per supervisar el rendiment de MySQL/MariaDB a Linux
  • Com canviar el port predeterminat de MySQL/MariaDB a Linux
  • Com restablir la contrasenya arrel MySQL o MariaDB a Linux

Tant de bo, a hores d'ara, podeu crear usuaris als vostres servidors de bases de dades MySQL i assignar o revocar els permisos còmodament.