crear usuario y asignar privilegios en MySql
Tabla de contenido:
- Antes de que empieces
- Crear una nueva cuenta de usuario MySQL
- Conceder privilegios a una cuenta de usuario MySQL
- Mostrar privilegios de cuenta de usuario MySQL
- Revocar privilegios de una cuenta de usuario MySQL
- Eliminar una cuenta de usuario MySQL existente
- Conclusión
MySQL es el sistema de gestión de bases de datos relacionales de código abierto más popular. El servidor MySQL nos permite crear numerosas cuentas de usuario y otorgar los privilegios adecuados para que los usuarios puedan acceder y administrar bases de datos.
Este tutorial describe cómo crear cuentas de usuario MySQL y otorgar privilegios.
Antes de que empieces
Asumimos que ya tiene instalado el servidor MySQL o MariaDB en su sistema.
Todos los comandos se ejecutan dentro del shell MySQL como usuario root o administrativo. Los privilegios mínimos necesarios para crear cuentas de usuario y definir sus privilegios es
CREATE USER
y
GRANT
.
Para acceder al shell de MySQL, escriba el siguiente comando e ingrese su contraseña de usuario root de MySQL cuando se le solicite:
Crear una nueva cuenta de usuario MySQL
Una cuenta de usuario en MySQL consta de un nombre de usuario y partes de nombre de host.
Para crear una nueva cuenta de usuario MySQL, ejecute el siguiente comando:
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'user_password';
Reemplace el valor de marcador de posición
newuser
con su nuevo nombre de usuario deseado, y el valor de marcador de posición
user_password
con la contraseña de usuario.
En el comando anterior, la parte del nombre de host se establece en
localhost
, lo que significa que el usuario podrá conectarse al servidor MySQL solo desde el localhost (es decir, desde el sistema donde se ejecuta MySQL Server).
Para otorgar acceso desde otro host, cambie la parte del nombre de host (
localhost
) con la IP remota de la máquina. Por ejemplo, para otorgar acceso desde una máquina con IP
10.8.0.5
, ejecutaría:
CREATE USER 'newuser'@'10.8.0.5' IDENTIFIED BY 'user_password';
Para crear un usuario que pueda conectarse desde cualquier host, use el comodín
'%'
como parte del host:
CREATE USER 'newuser'@'%' IDENTIFIED BY 'user_password';
Conceder privilegios a una cuenta de usuario MySQL
Existen múltiples tipos de privilegios que se pueden otorgar a una cuenta de usuario. Puede encontrar una lista completa de privilegios compatibles con MySQL aquí.
Los privilegios más utilizados son:
-
ALL PRIVILEGES
: otorga todos los privilegios a una cuenta de usuario.CREATE
: la cuenta de usuario puede crear bases de datos y tablas.DROP
: la cuenta de usuario puede soltar 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 otorgar privilegios específicos a una cuenta de usuario, puede usar la siguiente sintaxis:
GRANT permission1, permission2 ON database_name.table_name TO 'database_user'@'localhost';
Aquí hay unos ejemplos:
-
Grandes privilegios para una cuenta de usuario sobre una base de datos específica:
GRANT ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost';
Grand todos los privilegios para una cuenta de usuario en todas las bases de datos:
GRANT ALL PRIVILEGES ON *.* TO 'database_user'@'localhost';
Grand todos los privilegios para una cuenta de usuario sobre una tabla específica de una base de datos:
GRANT ALL PRIVILEGES ON database_name.table_name TO 'database_user'@'localhost';
Otorgue múltiples privilegios a una cuenta de usuario sobre una base de datos específica:
GRANT SELECT, INSERT, DELETE ON database_name.* TO database_user@'localhost';
Mostrar privilegios de cuenta de usuario MySQL
Para encontrar los privilegios otorgados a una cuenta de usuario MySQL específica, use la instrucción
SHOW GRANTS
:
SHOW GRANTS FOR 'database_user'@'localhost';
+---------------------------------------------------------------------------+ | Grants for database_user@localhost | +---------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO 'database_user'@'localhost' | | GRANT ALL PRIVILEGES ON `database_name`.* TO 'database_user'@'localhost' | +---------------------------------------------------------------------------+ 2 rows in set (0.00 sec)
Revocar privilegios de una cuenta de usuario MySQL
La sintaxis para revocar uno o más privilegios de una cuenta de usuario es casi idéntica a la de otorgar privilegios.
Por ejemplo, para revocar todos los privilegios de una cuenta de usuario sobre una base de datos específica, use el siguiente comando:
REVOKE ALL PRIVILEGES ON database_name.* FROM 'database_user'@'localhost';
Eliminar una cuenta de usuario MySQL existente
Para eliminar una cuenta de usuario MySQL, use la declaración
DROP USER
:
DROP USER 'user'@'localhost'
El comando anterior eliminará la cuenta de usuario y sus privilegios.
Conclusión
Este tutorial cubre solo los conceptos básicos, pero debería ser un buen comienzo para cualquiera que quiera aprender a crear nuevas cuentas de usuario MySQL y otorgar privilegios.
mysql mariadbEjecutar y crear tareas con privilegios administrativos en Windows 10/8
Aprenda a abrir un comando de ejecución elevado que le permite ejecutar y crear una tarea con privilegios administrativos. Cree esta tarea con privilegios administrativos.
Cómo otorgar u obtener privilegios elevados en Windows 10/8/7
Privilegios elevados en Windows les permite a los usuarios obtener permisos administrativos derechos con los que pueden realizar cambios en el sistema y hacer más que el usuario estándar.
Cómo eliminar cuentas de usuarios mysql
Este tutorial explica cómo eliminar cuentas de usuario MySQL / MariaDB. En MySQL puede eliminar uno o más usuarios y privilegios asignados con la declaración DROP USER.