MariaDB comenzando con 10.2.0

La declaración ALTER USER se introdujo en MariaDB 10.2.0.

Sintaxis

ALTERUSER[IFEXISTS] 
 user_specification [,user_specification]...[REQUIRE NONE ][WITH resource_option [resource_option]...][password_option | lock_option] 

user_specification:
  username [authentication_option]

authentication_option:
  IDENTIFIED BY'password'| IDENTIFIED BY PASSWORD 'password_hash'| IDENTIFIED WITH authentication_plugin
  | IDENTIFIED WITH authentication_plugin USING 'authentication_string'| IDENTIFIED WITH authentication_plugin USING PASSWORD('password')

tls_option
  SSL 
  | X509
  | CIPHER 'cipher'| ISSUER 'issuer'| SUBJECT 'subject'

resource_option
  MAX_QUERIES_PER_HOUR count
  | MAX_UPDATES_PER_HOUR count
  | MAX_CONNECTIONS_PER_HOUR count
  | MAX_USER_CONNECTIONS count
  | MAX_STATEMENT_TIME time

password_option:
  PASSWORD EXPIRE
  | PASSWORD EXPIRE DEFAULT| PASSWORD EXPIRE NEVER
  | PASSWORD EXPIRE INTERVAL N DAY

lock_option:
    ACCOUNT LOCK| ACCOUNT UNLOCK
}

Descripción

los ALTER USER declaración modifica las cuentas MariaDB existentes. Para usarlo, debe tener el global CREATE USER privilegio o el UPDATE privilegio para el mysql base de datos. Lo global SUPER También se requiere privilegio si el read_only la variable del sistema está habilitada.

Si alguna de las cuentas de usuario especificadas aún no existe, se produce un error. Si ocurre un error, ALTER USER seguirá modificando las cuentas que no den lugar a un error. Solo se produce un error para todos los usuarios que no han sido modificados.

SI EXISTE

Cuando el IF EXISTS se utiliza una cláusula, MariaDB devolverá una advertencia en lugar de un error para cada usuario especificado que no existe.

Nombres de cuenta

Para ALTER USER extractos, los nombres de las cuentas se especifican como username argumento de la misma manera que lo son para CREATE USER declaraciones. Ver nombres de cuentas del CREATE USER página para obtener detalles sobre cómo se especifican los nombres de cuenta.

CURRENT_USER o CURRENT_USER() también se puede utilizar para modificar la cuenta que inició sesión en la sesión actual. Por ejemplo, para cambiar la contraseña del usuario actual a mariadb:

ALTERUSERCURRENT_USER() IDENTIFIED BY'mariadb';

Opciones de autenticación

IDENTIFICADO POR ‘contraseña’

El opcional IDENTIFIED BY La cláusula se puede utilizar para proporcionar una cuenta con una contraseña. La contraseña debe especificarse en texto sin formato. Será hash por el PASSWORD función antes de ser almacenado en el mysql.user mesa.

Por ejemplo, si nuestra contraseña es mariadb, luego podemos configurar la contraseña de la cuenta con:

ALTERUSER foo2@test IDENTIFIED BY'mariadb';

Si no especifica una contraseña con el IDENTIFIED BY cláusula, el usuario podrá conectarse sin contraseña. Una contraseña en blanco no es un comodín para coincidir con ninguna contraseña. El usuario debe conectarse sin proporcionar una contraseña si no se establece ninguna contraseña.

Los únicos complementos de autenticación que admite esta cláusula son mysql_native_password y mysql_old_password.

IDENTIFICADO POR CONTRASEÑA ‘password_hash’

El opcional IDENTIFIED BY PASSWORD La cláusula se puede utilizar para proporcionar una cuenta con una contraseña que ya se ha codificado. La contraseña debe especificarse como un hash proporcionado por el PASSWORD función. Se almacenará en el mysql.user tabla como está.

Por ejemplo, si nuestra contraseña es mariadb, luego podemos encontrar el hash con:

SELECT PASSWORD('mariadb');+-------------------------------------------+| PASSWORD('mariadb')|+-------------------------------------------+|*54958E764CE10E50764C2EECBB71D01F08549980 |+-------------------------------------------+1rowinset(0.00 sec)

Y luego podemos establecer la contraseña de una cuenta con el hash:

ALTERUSER foo2@test IDENTIFIED BY PASSWORD '*54958E764CE10E50764C2EECBB71D01F08549980';

Si no especifica una contraseña con el IDENTIFIED BY cláusula, el usuario podrá conectarse sin contraseña. Una contraseña en blanco no es un comodín para coincidir con ninguna contraseña. El usuario debe conectarse sin proporcionar una contraseña si no se establece ninguna contraseña.

Los únicos complementos de autenticación que admite esta cláusula son mysql_native_password y mysql_old_password.

IDENTIFICADO WITH authentication_plugin

El opcional IDENTIFIED VIA authentication_plugin le permite especificar que la cuenta debe ser autenticada por un complemento de autenticación específico. El nombre del complemento debe ser un complemento de autenticación activo según SHOW PLUGINS. Si no aparece en esa salida, deberá instalarlo con INSTALL PLUGIN o INSTALL SONAME.

Por ejemplo, esto podría usarse con el complemento de autenticación PAM:

ALTERUSER foo2@test IDENTIFIED VIA pam;

Algunos complementos de autenticación permiten especificar argumentos adicionales después de una USING o AS palabra clave. Por ejemplo, el complemento de autenticación PAM acepta un nombre de servicio:

ALTERUSER foo2@test IDENTIFIED VIA pam USING'mariadb';

El significado exacto del argumento adicional dependería del complemento de autenticación específico.

En MariaDB 10.4 y posteriores, el USING o AS La palabra clave también se puede utilizar para proporcionar una contraseña de texto sin formato a un complemento si se proporciona como un argumento para la función PASSWORD (). Esto solo es válido para complementos de autenticación que han implementado un enlace para la función PASSWORD (). Por ejemplo, el ed25519 El complemento de autenticación admite esto:

ALTERUSER safe@'%' IDENTIFIED VIA ed25519 USING PASSWORD('secret');

Opciones de TLS

De forma predeterminada, MariaDB transmite datos entre el servidor y los clientes sin cifrarlos. Esto es generalmente aceptable cuando el servidor y el cliente se ejecutan en el mismo host o en redes donde la seguridad está garantizada por otros medios. Sin embargo, en los casos en que el servidor y el cliente existen en redes separadas o están en una red de alto riesgo, la falta de cifrado introduce problemas de seguridad, ya que un actor malintencionado podría espiar el tráfico a medida que se envía a través de la red entre ellos. .

Para mitigar esta preocupación, MariaDB le permite cifrar los datos en tránsito entre el servidor y los clientes mediante el protocolo Transport Layer Security (TLS). TLS se conocía anteriormente como Secure Socket Layer (SSL), pero estrictamente hablando, el protocolo SSL es un predecesor de TLS y esa versión del protocolo ahora se considera insegura. La documentación todavía usa el término SSL a menudo y, por razones de compatibilidad, el sistema de servidor relacionado con TLS y las variables de estado aún usan el prefijo ssl_, pero internamente, MariaDB solo admite sus sucesores seguros.

Consulte Descripción general de conexiones seguras para obtener más información sobre cómo determinar si su servidor MariaDB tiene soporte TLS.

Puede establecer ciertas restricciones relacionadas con TLS para cuentas de usuario específicas. Por ejemplo, puede usar esto con cuentas de usuario que requieren acceso a datos confidenciales mientras los envían a través de redes que no controla. Estas restricciones se pueden habilitar para una cuenta de usuario con el CREATE USER, ALTER USER, o GRANT declaraciones. Las siguientes opciones están disponibles:

Opción Descripción
REQUIRE NONE TLS no es necesario para esta cuenta, pero aún se puede usar.
REQUIRE SSL La cuenta debe usar TLS, pero no se requiere un certificado X509 válido. Esta opción no se puede combinar con otras opciones de TLS.
REQUIRE X509 La cuenta debe usar TLS y debe tener un certificado X509 válido. Esta opción implica REQUIRE SSL. Esta opción no se puede combinar con otras opciones de TLS.
REQUIRE ISSUER 'issuer' La cuenta debe usar TLS y debe tener un certificado X509 válido. Además, la autoridad de certificación debe ser la especificada a través de la cadena issuer. Esta opción implica REQUIRE X509. Esta opción se puede combinar con la SUBJECT, y CIPHER opciones en cualquier orden.
REQUIRE SUBJECT 'subject' La cuenta debe usar TLS y debe tener un certificado X509 válido. Además, el Asunto del certificado debe ser el especificado a través de la cadena subject. Esta opción implica REQUIRE X509. Esta opción se puede combinar con la ISSUER, y CIPHER opciones en cualquier orden.
REQUIRE CIPHER 'cipher' La cuenta debe usar TLS, pero no se requiere un certificado X509 válido. Además, el cifrado utilizado para la conexión debe utilizar uno de los métodos especificados en la cadena cipher. Esta opción implica REQUIRE SSL. Esta opción se puede combinar con la ISSUER, y SUBJECT opciones en cualquier orden.

los REQUIRE La palabra clave debe usarse solo una vez para todas las opciones especificadas, y la AND La palabra clave se puede utilizar para separar opciones individuales, pero no es necesaria.

Por ejemplo, puede modificar una cuenta de usuario para requerir estas opciones de TLS con lo siguiente:

ALTERUSER'alice'@'%'REQUIRE SUBJECT '/CN=alice/O=My Dom, Inc./C=US/ST=Oregon/L=Portland'AND ISSUER '/C=FI/ST=Somewhere/L=City/ O=Some Company/CN=Peter Parker/[email protected]'AND CIPHER 'TLSv1.2';

Si alguna de estas opciones está configurada para una cuenta de usuario específica, entonces cualquier cliente que intente conectarse con esa cuenta de usuario deberá estar configurado para conectarse con TLS.

Consulte Protección de las conexiones para el cliente y el servidor para obtener información sobre cómo habilitar TLS en el cliente y el servidor.

Opciones de límite de recursos

MariaDB comenzando con 10.2.0

MariaDB 10.2.0 introdujo una serie de opciones de límite de recursos.

Es posible establecer límites por cuenta para ciertos recursos del servidor. La siguiente tabla muestra los valores que se pueden establecer por cuenta:

Tipo de límite Descripción
MAX_QUERIES_PER_HOUR Número de extractos que la cuenta puede emitir por hora (incluidas las actualizaciones)
MAX_UPDATES_PER_HOUR Número de actualizaciones (no consultas) que la cuenta puede emitir por hora
MAX_CONNECTIONS_PER_HOUR Número de conexiones que la cuenta puede iniciar por hora
MAX_USER_CONNECTIONS Número de conexiones simultáneas que se pueden aceptar desde la misma cuenta; si es 0, max_connections se utilizará en su lugar; si max_connections es 0, no hay límite para las conexiones simultáneas de esta cuenta.
MAX_STATEMENT_TIME Tiempo de espera, en segundos, para declaraciones ejecutadas por el usuario. Consulte también Cancelación de declaraciones que superan un cierto tiempo para ejecutarse.

Si alguno de estos límites se establece en 0, entonces no hay límite para ese recurso para ese usuario.

A continuación, se muestra un ejemplo que muestra cómo establecer los límites de recursos de una cuenta:

ALTERUSER'someone'@'localhost'WITH
    MAX_USER_CONNECTIONS 10
    MAX_QUERIES_PER_HOUR 200;

Los recursos se rastrean por cuenta, lo que significa 'user'@'server'; no por nombre de usuario o por conexión.

El recuento se puede restablecer para todos los usuarios que utilizan FLUSH USER_RESOURCES, FLUSH PRIVILEGES o mysqladmin reload.

Los límites de recursos por cuenta se almacenan en el user mesa, en el mysql base de datos. Las columnas utilizadas para los límites de recursos se nombran max_questions, max_updates, max_connections (por MAX_CONNECTIONS_PER_HOUR), y max_user_connections (por MAX_USER_CONNECTIONS).

Caducidad de la contraseña

MariaDB comenzando con 10.4.3

Además de la caducidad automática de la contraseña, según lo determinado por default_password_lifetime, los tiempos de caducidad de la contraseña se pueden configurar para cada usuario individual, anulando la configuración global, por ejemplo:

ALTERUSER'monty'@'localhost' PASSWORD EXPIRE INTERVAL120DAY;ALTERUSER'monty'@'localhost' PASSWORD EXPIRE NEVER;ALTERUSER'monty'@'localhost' PASSWORD EXPIRE DEFAULT;

Consulte Caducidad de la contraseña de usuario para obtener más detalles.

Bloqueo de cuenta

MariaDB comenzando con 10.4.2

El bloqueo de cuentas permite a los administradores privilegiados bloquear / desbloquear cuentas de usuario. No se permitirán nuevas conexiones de cliente si una cuenta está bloqueada (las conexiones existentes no se ven afectadas). Por ejemplo:

ALTERUSER'marijn'@'localhost' ACCOUNT LOCK;

Consulte Bloqueo de cuenta para obtener más detalles.

Ver también

  • Autenticación de MariaDB 10.4
  • CONCEDER
  • CREAR USUARIO
  • SOLICITAR USUARIO
  • CONFIGURAR LA CLAVE
  • MOSTRAR CREAR USUARIO
  • tabla mysql.user
  • Complementos de validación de contraseñas: permite establecer criterios básicos para las contraseñas.
  • Complementos de autenticación: permiten utilizar varios métodos de autenticación y desarrollar otros nuevos.

El contenido reproducido en este sitio es propiedad de sus respectivos dueños, y MariaDB no revisa este contenido con anticipación. Los puntos de vista, la información y las opiniones expresadas por este contenido no representan necesariamente las de MariaDB o de cualquier otra parte.