mysql create user how create new user mysql
Este tutorial explica el comando MySQL Create User con diferentes mecanismos de autorización, administración de contraseñas, opciones de límite de recursos, etc.
El comando MySQL CREATE USER se utiliza para crear nuevos usuarios y otorgar acceso granular a bases de datos / tablas, etc.
Varias personas usan una instancia de servidor MySQL, con diferentes niveles de acceso. Por ejemplo, algunos usuarios tienen acceso de lectura a una base de datos específica, de manera similar, algunos pueden tener acceso de lectura y escritura a una base de datos en particular, etc.
Los administradores de MySQL utilizan con más frecuencia el comando CREATE USER para crear usuarios para las instancias de MySQL Server y otorgar diferentes permisos mediante la consulta GRANT.
Lo que vas a aprender:
Mi comando SQL CREATE USER
El comando CREATE USER se usa para crear o agregar nuevas cuentas a las instancias del servidor MySQL.
Este comando es generalmente accesible / lo utilizan los administradores de MySQL para administrar el acceso a diferentes usuarios de la instancia de MySQL Server.
Al crear un usuario con el comando CREAR USUARIO, puede especificar
- Autenticación, que debe usarse al conectarse a MySQL.
- Límite de recursos
- Propiedades de administración de contraseñas: expiración de la contraseña, configuración de reutilización de la contraseña.
- Bloqueo de cuenta: las cuentas recién creadas se bloquearían o desbloquearían.
Las cuentas se crean en la tabla del sistema MySQL llamada 'Mysql.user'
Nota: Para usar el comando CREATE USER, el usuario debe tener el privilegio CREATE_USER o insertar una concesión para MySQL esquema del sistema.
En la forma más simple, la sintaxis del comando CREATE USER es la siguiente:
|_+_|Note el opcional SI NO EXISTE . Esto asegura que si el usuario ya existe, el resultado de la consulta SQL solo arrojará una advertencia y ningún error. Aquí, 'nombre de usuario' se refiere al nombre de usuario real con el que el usuario se conectaría y 'Nombre de host' se refiere al host desde el que se conectaría el usuario.
Tenga en cuenta, Si el campo 'nombre de host' se deja en blanco, se asume que el valor del host es '%', lo que permitiría que cualquier host se conecte con el nombre de usuario especificado.
Crea un usuario con esta sintaxis:
|_+_|Con la declaración anterior, hemos creado un usuario con el nombre de usuario 'usuariox' y la contraseña como 'contraseña'. El nombre de host es localhost ya que estamos creando los usuarios en nuestra instancia local de MySQL.
Intentemos consultar la tabla mysql.users para ver la entrada del usuario que creamos.
|_+_|Verá el resultado a continuación:
Los primeros 4 usuarios se crean previamente durante la instalación de MySQL, mientras que la última entrada es el usuario que hemos creado, es decir, 'userx'.
Es importante tener en cuenta que en este punto acabamos de crear un usuario sin otorgar ningún derecho al usuario en términos de crear / actualizar / consultar una base de datos, etc.
referencia indefinida a la función de clase c ++
Intentemos iniciar sesión con este usuario con el cliente MySQL.
Puede usar el terminal para conectarse con el siguiente comando:
|_+_|Cuando se le solicite una contraseña, introduzca la contraseña como 'contraseña'.
|_+_|Ahora, crearemos una nueva base de datos usando la palabra clave CREATE DATABASE.
|_+_|Como puede ver arriba, se genera un mensaje de error que indica que el usuario 'userx' no tiene acceso para crear BASE DE DATOS. Veamos otras opciones que podrían usarse con el comando CREAR USUARIO.
CREAR USUARIO con el complemento de autenticación
'Auth plugin' especifica una opción de autenticación y se almacena en la columna de plugins de la tabla mysql.user. MySQL admite varios complementos de autenticación.
Algunos complementos que son compatibles son los siguientes:
- Hash de contraseña nativa de MySQL: El hash de contraseña nativo no es más que usar SHA1 para almacenar valores de contraseña en la tabla mysql.users. Este mecanismo se considera menos seguro que el hash de contraseña SHA1.
- Hash de contraseña SHA2 256: Este es el complemento de autenticación predeterminado utilizado por MySQL. es decir, incluso si no se especifica ningún complemento de autenticación con el comando CREATE_USER, este complemento se aplicaría de forma predeterminada.
- Autenticación externa mediante LDAP: LDAP se usa generalmente para vincular la autenticación MySQL con el directorio activo de la organización. Por ejemplo, autenticarse mediante Google SSO, OAuth o Microsoft Outlook LDAP. Esto también requiere la instalación del complemento LDAP en el lado de MySQL. Para obtener más detalles, puede consultar aquí.
>> Consulte Aquí para obtener una lista completa de complementos compatibles.
Intentemos crear un usuario con un complemento de autenticación predeterminado y un complemento de autenticación SHA2 y sus valores hash correspondientes en la tabla mysql.users. Primero, crearemos un usuario con autenticación predeterminada, que es (SHA2), y veremos qué está almacenado en el mysql.user mesa.
|_+_|Veamos el complemento de autenticación para este usuario 'usuario predeterminado' en la tabla mysql.users:
|_+_|
Aquí, en authentication_string, puede ver su valor SHA-256 para la cadena de contraseña: 'P @ ssw0rd'.
Creemos ahora un usuario con un complemento de autenticación. 'Contraseña nativa de MySQL' y vea cuál es el valor del complemento que se almacena.
|_+_| |_+_|
CREAR USUARIO con rol
MySQL también proporciona la asignación de roles predefinidos a nuevos usuarios. Estos roles ya tienen un acceso configurado a algunas o todas las bases de datos (que también se pueden personalizar), por ejemplo, Se podría crear un rol llamado 'desarrollador' al que se le podrían asignar todos los privilegios a una base de datos y luego podemos usar el mismo rol para asignar a nuevos usuarios.
Veamos esto con un ejemplo:
- Crear un rol llamado desarrollador
- Cree una base de datos llamada 'prueba'
- Asignar privilegios para probar la base de datos para el rol de 'desarrollador'
- Crear usuario y asignar rol de desarrollador
- Validar que el usuario puede crear una tabla en la base de datos de prueba
Intentemos iniciar sesión con el usuario llamado 'usuario con función' e intentaremos crear una nueva tabla en la base de datos de prueba.
|_+_|CREAR USUARIO con SSL / TLS
La creación de un usuario con opciones SSL / TLS requeriría que tanto el cliente como el servidor tuvieran certificados SSL instalados. De forma predeterminada, SSL no está configurado para MySQL.
Siga estos pasos para configurar SSL para la instancia del servidor MySQL.
Para crear un usuario con SSL habilitado, puede utilizar la opción REQUERIR SSL mientras crea el usuario.
preguntas y respuestas de la entrevista de selenium java|_+_|
De manera similar, la creación con X509 esperaría que el cliente / usuario se conecte para tener un certificado X509 válido.
>> Consulte Aquí para comprender más sobre X509.
Para crear un usuario con un certificado X509, utilice la siguiente consulta:
|_+_|CREAR USUARIO con opciones de administración de contraseñas
Las opciones de contraseña se utilizan para establecer una política en la contraseña mientras se crea un usuario mediante el comando CREATE USER.
#1) Caduca la contraseña al iniciar sesión. La contraseña caduca después del primer uso y solicita a los usuarios que la cambien.
|_+_|#2) Caduca la contraseña después de un intervalo fijo. La caducidad de la contraseña se puede configurar con el intervalo configurado, por ejemplo, 90 dias.
|_+_|#3) La contraseña se bloquea después de reintentos configurados. Muchas veces, se desea que la cuenta de usuario se bloquee (durante un período configurado) después de 'n' reintentos incorrectos. En la siguiente consulta, la cuenta de usuario se bloqueará durante 2 días después de 5 intentos incorrectos.
|_+_|#4) La nueva contraseña no debe ser la misma que las contraseñas anteriores configuradas.
En la siguiente consulta, la nueva contraseña establecida por los usuarios no debe ser la misma que las últimas 2 contraseñas.
|_+_|CREAR USUARIO con opciones de límite de recursos
Se requieren límites de recursos, especialmente para las instancias de producción de MySQL, para evitar que la base de datos se abrume con consultas / solicitudes de un solo usuario y que podrían afectar el rendimiento del servidor MySQL.
Podemos establecer los límites de recursos usando cualquiera de las 3 opciones siguientes:
# 1) MAX_QUERIES_PER_HOUR - Número de consultas de obtención permitidas para un usuario determinado por hora.
|_+_|Supongamos que si el usuario intenta superar más de 5 consultas por hora, el servidor MySQL arrojaría un error como el siguiente:
|_+_|# 2) MAX_UPDATES_PER_HOUR - Número de consultas de actualización permitidas para un usuario determinado por hora.
|_+_|# 3) MAX_CONNECTIONS_PER_HOUR - La cantidad de veces que una cuenta puede conectarse al servidor por hora.
|_+_|# 4) MAX_USER_CONNECTIONS - El número de conexiones simultáneas a la instancia del servidor MySQL del usuario dado.
|_+_|Tenga en cuenta que todas las opciones anteriores también se pueden combinar al crear un usuario. Supongamos que si queremos especificar MAX_QUERIES como 10 y MAX_UPDATES como 100, entonces podemos tener una sola consulta CREATE_USER como:
|_+_|Actualizar y eliminar usuarios de MySQL
MySQL proporciona 2 comandos importantes: ALTER USER y DROP USER para modificar y eliminar usuarios existentes, respectivamente. Comprendamos ambos usando ejemplos.
ALTER USUARIO
MySQL ALTER USER se utiliza para actualizar / modificar cuentas de usuario de MySQL existentes. Puede usarse para,
- Actualizar límites de recursos
- Establecer opciones de contraseña
- Bloquear y desbloquear cuentas, etc.
Veamos un ejemplo del uso de ALTER USER para desbloquear una cuenta bloqueada.
Cree un usuario en un estado bloqueado y luego desbloquéelo con el comando ALTER USER.
|_+_|Ahora, al iniciar sesión con este usuario, obtendremos un mensaje de cuenta bloqueada (ya que el usuario se creó en un estado de cuenta bloqueada).
|_+_|Utilice la siguiente consulta para desbloquear al usuario con el comando ALTER.
|_+_|Inicie sesión con el usuario con el cliente MySQL:
|_+_|DROP USER
El comando DROP USER de MySQL elimina uno o más usuarios existentes y todos sus privilegios y concesiones asociados.
Tenga en cuenta que no eliminará / eliminará ningún dato insertado / tablas creadas o actualizadas por el usuario, que se está eliminando.
Si alguien intenta eliminar un usuario no existente, el comando DROP USER arrojaría un error.
Creemos un usuario y elimínelo con el comando DROP:
|_+_|Preguntas frecuentes
P # 1) ¿Qué es un usuario en MySQL?
Responder: El usuario en MySQL es una cuenta / entidad que puede iniciar sesión en la instancia del servidor MySQL y realizar diferentes operaciones. A un usuario se le puede asignar acceso basado en roles o acceso granular a una o más bases de datos y / o tablas.
P # 2) ¿Cómo verificar diferentes usuarios conectados a MySQL?
Responder: Para ver las sesiones de usuario activas en una instancia de servidor MySQL, puede ejecutar el comando processlist como se muestra a continuación.
cómo presentar un informe de error|_+_|
La salida de este comando mostraría diferentes atributos de las sesiones del usuario activo conectadas en el momento de la ejecución del comando.
Salida de muestra a continuación:
P # 3) ¿Cómo cambio de usuario en MySQL?
Responder: MySQL trabaja con el concepto de sesiones de usuario. Cuando inicia sesión con un usuario determinado, puede planear terminar la sesión o abrir una sesión contra un nuevo usuario en una nueva ventana o como una nueva conexión en los clientes de la GUI de MySQL como un banco de trabajo.
Para iniciar sesión con un usuario en particular del cliente mysql, puede usar la siguiente sintaxis:
|_+_|Después de escribir el comando anterior, una vez que presione Enter, se le pedirá que ingrese la contraseña para el usuario especificado en el campo {userName}. Una vez validada la contraseña, se le dirigirá al shell / símbolo del sistema de MySQL.
Para iniciar sesión con un usuario independiente, puede terminar la sesión actual ingresando el comando de salida y volver a iniciar sesión con otro usuario.
|_+_|También es posible tener varias conexiones a las instancias del servidor MySQL para diferentes usuarios. Simplemente puede abrir una nueva pestaña / ventana para el símbolo del sistema y usar el mismo comando para iniciar sesión con otro usuario.
|_+_|P # 4) ¿Cómo hacer que un usuario de MySQL sea de solo lectura?
Responder: MySQL proporciona un mecanismo exhaustivo para otorgar acceso granular a bases de datos o tablas. Puede proporcionar diferentes tipos de acceso como SELECCIONAR, ACTUALIZAR, INSERTAR, etc. a una o varias bases de datos o tablas.
Para otorgar solo acceso de solo lectura a un usuario, puede otorgar acceso SELECT a una base de datos (usando * para todas las tablas o mencionando explícitamente el nombre de la tabla según el requisito)
Comprendamos esto con la ayuda de un ejemplo a continuación:
Estamos creando un usuario llamado 'readaccess' con una contraseña como 'Contraseña'
|_+_|Ahora, conceda acceso de lectura a todas las tablas de una base de datos llamada 'prueba' mediante el uso de la palabra clave GRANT en MySQL
|_+_|Ahora, para validar el acceso, puede iniciar sesión con este usuario llamado 'readaccess' e intentar consultar las tablas dentro de la base de datos 'prueba'.
Sin embargo, si intenta insertar datos en cualquiera de las tablas dentro de la base de datos de prueba, obtendrá un error de acceso denegado ya que acabamos de otorgar acceso de lectura explícitamente a este usuario.
P # 5) ¿Cómo veo a los usuarios en MySQL?
Responder: MySQL tiene una tabla a nivel de sistema llamada 'mysql.user' que contiene una lista de todos los usuarios que se crean para la instancia del servidor MySQL. Los privilegios de esta tabla generalmente están restringidos a usuarios root o administradores o alguien que administra la autenticación y autorización para la instancia del servidor MySQL.
P # 6) ¿Cómo encontrar el nombre de usuario y la contraseña de MySQL?
Responder: La asignación de usuarios y contraseñas de MySQL se almacena en la tabla del sistema 'mysql.user', que es una tabla de acceso restringido. La contraseña se almacena en formato cifrado según el modo de cifrado que se eligió durante la creación del usuario.
Sin embargo, si la cuenta de alguien está bloqueada, MySQL proporciona otro comando llamado ALTER USER, que puede usarse para desbloquear una cuenta de usuario determinada.
Conclusión
En este tutorial, aprendimos sobre el comando MySQL CREATE USER, que generalmente los administradores de bases de datos utilizan para la autenticación y la gestión de acceso.
MySQL proporciona una gran cantidad de poderosos mecanismos de autenticación y asignaciones basadas en roles que permiten crear nuevos usuarios con concesiones de acceso predefinidas. También vimos ejemplos para crear usuarios con diferentes mecanismos de autorización, diferentes configuraciones de contraseña, opciones de caducidad, etc.
Lectura recomendada
- Cómo descargar MySQL para Windows y Mac
- Tutorial de creación de vistas de MySQL con ejemplos de código
- Tutorial de creación de tablas de MySQL con ejemplos
- 31 preguntas y respuestas principales de la entrevista de pruebas de bases de datos
- Tutorial de normalización de bases de datos: ejemplos de 1NF 2NF 3NF BCNF
- Guía completa de pruebas de bases de datos (por qué, qué y cómo probar datos)
- MongoDB Create Database Backup
- MongoDB Crear usuario y asignar roles con ejemplos