GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo agregar un nuevo usuario de MySQL y otorgar privilegios de acceso

En este tutorial, agregaremos un nuevo usuario en MySQL y otorgaremos diferentes tipos de privilegios en una base de datos MySQL.

El servidor MySQL nos permite crear numerosas cuentas de usuario y otorgar los privilegios apropiados para que los usuarios puedan acceder y administrar las bases de datos. Una vez que haya instalado MySQL en el servidor, debe crear una base de datos y cuentas de usuario adicionales.

Para ejecutar los siguientes comandos, primero debe iniciar sesión en el servidor MySQL con la cuenta raíz de MySQL.

mysql -u root -p

Cómo crear un nuevo usuario de MySQL

El CREATE USER declaración crea un nuevo usuario en el servidor de base de datos MySQL. Esta es la sintaxis básica de la declaración:

CREATE USER 'username'@'hostname' IDENTIFIED BY 'password';

En la sintaxis anterior, asegúrese de reemplazar el nombre de usuario y contraseña con su nombre de usuario y contraseña deseados.

Establecer el hostname a localhost si desea que el usuario pueda conectarse al servidor MySQL solo desde el host local, lo que significa "esta computadora". Si desea que el usuario pueda conectarse desde cualquier host, use el % comodín como nombre de host.

Por ejemplo, crearemos un usuario con el nombre james y la contraseña MyStrongPass123 usando el siguiente comando:

CREATE USER 'james'@'localhost' IDENTIFIED BY 'MyStrongPass123';

Sin embargo, este usuario no podrá trabajar con ninguna de las bases de datos MySQL hasta que se le otorguen privilegios adicionales.

Cómo otorgar privilegios a un usuario de MySQL

Inmediatamente después de crear con éxito el nuevo usuario, podemos otorgar privilegios a este nuevo usuario. En la mayoría de los casos, otorgará privilegios a los usuarios de MySQL en función de la base de datos particular a la que la cuenta debería tener acceso.

Hay varios tipos de privilegios que se pueden otorgar a una cuenta de usuario. Puede encontrar una lista completa de los privilegios admitidos por MySQL aquí.

  • ALL PRIVILEGES – Otorga todos los privilegios a una cuenta de usuario.
  • ALTER – El usuario puede cambiar la estructura de una tabla o base de datos.
  • CREATE – La cuenta de usuario puede crear bases de datos y tablas.
  • DROP – La cuenta de usuario puede eliminar bases de datos y tablas.
  • DELETE – La cuenta de usuario puede eliminar filas de una tabla específica.
  • INSERT – La cuenta de usuario puede insertar filas en una tabla específica.
  • SELECT – La cuenta de usuario puede leer una base de datos.
  • UPDATE – La cuenta de usuario puede actualizar las filas de la tabla.

Para proporcionar a un usuario acceso a la base de datos MySQL y otorgar permisos, generalmente necesita usar el siguiente GRANT declaración:

GRANT permission_type ON privilege_level TO 'username'@'hostname'; 

Para conceder todos los privilegios al usuario james en jamesdb base de datos, use el siguiente comando:

GRANT ALL PRIVILEGES ON jamesdb.* TO 'james'@'localhost';

Escriba lo siguiente para otorgar solo SELECT y INSERT privilegios al usuario james en jamesdb base de datos:

GRANT SELECT, INSERT ON jamesdb.* TO 'james'@'localhost';

Gran SELECT privilegios al usuario james solo a salaries tabla sobre los employees base de datos:

GRANT SELECT ON employees.salaries TO 'james'@'localhost';

En algunos casos, es posible que desee crear otro "superusuario". Para otorgar a un usuario los mismos privilegios que el usuario root de MySQL , use el siguiente comando, que otorga privilegios globales al usuario james conectándose a través de localhost :

GRANT ALL ON *.* TO 'james'@'localhost' WITH GRANT OPTION;

Cambiar la contraseña de una cuenta de usuario de MySQL

Supongamos que desea cambiar la contraseña de james usuario que se conecta desde el localhostNewStrongPass123 , debe ejecutar la siguiente instrucción SQL:

ALTER USER 'james'@'localhost' IDENTIFIED BY 'NewStrongPass123';

En la instrucción SQL anterior, asegúrese de cambiar james con el usuario de su base de datos y localhost con el host del usuario.

Mostrar Privilegios para un usuario en MySQL

En MySQL, puede usar SHOW GRANTS Comando para mostrar toda la información de concesión para un usuario. Tomemos algunos ejemplos.

La siguiente declaración utiliza SHOW GRANTS instrucción para mostrar los privilegios otorgados al usuario actual:

SHOW GRANTS;

Para ver las concesiones de un usuario de MySQL, puede usar SHOW GRANTS mientras especifica el nombre de usuario:

SHOW GRANTS FOR 'james'@'localhost';

Revocar privilegios de una cuenta de usuario de MySQL

La sintaxis para revocar uno o más privilegios de una cuenta de usuario es casi idéntica a cuando se otorgan privilegios.

Si necesita revocar los privilegios del usuario james en un jamesdb base de datos, aplique la sintaxis que es similar a la que utilizó al otorgar permisos:

REVOKE ALL PRIVILEGES ON jamesdb.* FROM 'james'@'localhost';

Eliminar usuario de MySQL

En lugar de revocar los privilegios, es posible que también desee eliminar a ese usuario. Entonces, puede eliminar un usuario de la base de datos usando el siguiente comando:

DROP USER 'james'@'localhost';

El comando anterior eliminará al usuario james junto con todos sus privilegios.

Guardando tus cambios

Como paso final, cada vez que actualice o cambie un permiso, asegúrese de usar FLUSH PRIVILEGES comando.

FLUSH PRIVILEGES;

Conclusión

Después de completar este tutorial, debería tener una idea de cómo agregar nuevos usuarios y otorgarles una variedad de permisos en una base de datos MySQL.

Si tiene alguna pregunta o comentario, no dude en dejar un comentario.


Linux
  1. Cómo crear un nuevo usuario de MySQL y otorgar privilegios

  2. Cómo otorgar y eliminar privilegios de Sudo a usuarios en Ubuntu

  3. ¿Cómo crear un nuevo usuario con acceso Ssh?

  4. Crear un nuevo usuario y otorgar permisos en MySQL

  5. ¿Cómo agrego X días a la fecha y obtengo una nueva fecha?

Cómo verificar los privilegios de usuario de MySQL en Linux

Cómo crear un nuevo usuario y otorgar permisos en MySQL

¿Cómo agregar la base de datos MySQL y el usuario de la base de datos MySQL en Plesk?

¿Cómo agregar una base de datos MySQL en SolidCP?

¿Cómo agregar una base de datos MySQL en WebsitePanel 2.1?

¿Cómo crear una nueva base de datos MySQL y un usuario?