Modifica las cuentas de usuario de ClickHouse.
Sintaxis:
ALTER USER [IF EXISTS] name1 [RENAME TO new_name |, name2 [,...]]
[ON CLUSTER cluster_name]
[NOT IDENTIFIED | RESET AUTHENTICATION METHODS TO NEW | {IDENTIFIED | ADD IDENTIFIED} {[WITH {plaintext_password | sha256_password | sha256_hash | double_sha1_password | double_sha1_hash}] BY {'password' | 'hash'}} | WITH NO_PASSWORD | {WITH ldap SERVER 'server_name'} | {WITH kerberos [REALM 'realm']} | {WITH ssl_certificate CN 'common_name' | SAN 'TYPE:subject_alt_name'} | {WITH ssh_key BY KEY 'public_key' TYPE 'ssh-rsa|...'} | {WITH http SERVER 'server_name' [SCHEME 'Basic']} [VALID UNTIL datetime]
[, {[{plaintext_password | sha256_password | sha256_hash | ...}] BY {'password' | 'hash'}} | {ldap SERVER 'server_name'} | {...} | ... [,...]]]
[[ADD | DROP] HOST {LOCAL | NAME 'name' | REGEXP 'name_regexp' | IP 'address' | LIKE 'pattern'} [,...] | ANY | NONE]
[VALID UNTIL datetime]
[DEFAULT ROLE role [,...] | ALL | ALL EXCEPT role [,...] ]
[GRANTEES {user | role | ANY | NONE} [,...] [EXCEPT {user | role} [,...]]]
[DROP ALL PROFILES]
[DROP ALL SETTINGS]
[DROP SETTINGS variable [,...] ]
[DROP PROFILES 'profile_name' [,...] ]
[ADD|MODIFY SETTINGS variable [=value] [MIN [=] min_value] [MAX [=] max_value] [READONLY|WRITABLE|CONST|CHANGEABLE_IN_READONLY] [,...] ]
[ADD PROFILES 'profile_name' [,...] ]
Para usar ALTER USER, debe contar con el privilegio ALTER USER.
Especifica los usuarios o roles que pueden recibir privilegios de este usuario, siempre que este usuario también tenga todos los privilegios de acceso necesarios concedidos con GRANT OPTION. Opciones de la cláusula GRANTEES:
user — Especifica un usuario al que este usuario puede conceder privilegios.
role — Especifica un rol al que este usuario puede conceder privilegios.
ANY — Este usuario puede conceder privilegios a cualquier usuario o rol. Es la configuración predeterminada.
NONE — Este usuario no puede conceder privilegios a ningún usuario ni rol.
Puede excluir cualquier usuario o rol mediante la expresión EXCEPT. Por ejemplo, ALTER USER user1 GRANTEES ANY EXCEPT user2. Esto significa que, si a user1 se le han concedido algunos privilegios con GRANT OPTION, podrá conceder esos privilegios a cualquiera excepto a user2.
Establece los roles asignados como predeterminados:
ALTER USER user DEFAULT ROLE role1, role2
Si no se han asignado roles previamente a un usuario, ClickHouse lanza una excepción.
Establezca como predeterminados todos los roles asignados:
ALTER USER user DEFAULT ROLE ALL
Si en el futuro se asigna un rol a un usuario, pasará a ser el predeterminado automáticamente.
Establezca como predeterminados todos los roles asignados, excepto role1 y role2:
ALTER USER user DEFAULT ROLE ALL EXCEPT role1, role2
Permite que el usuario john conceda sus privilegios al usuario jack:
ALTER USER john GRANTEES jack;
Añade nuevos métodos de autenticación al usuario, conservando los existentes:
ALTER USER user1 ADD IDENTIFIED WITH plaintext_password by '1', bcrypt_password by '2', plaintext_password by '3'
Notas:
- Es posible que las versiones anteriores de ClickHouse no admitan la sintaxis de múltiples métodos de autenticación. Por lo tanto, si el servidor de ClickHouse contiene este tipo de usuarios y se degrada a una versión que no los admite, dichos usuarios quedarán inutilizables y algunas operaciones relacionadas con los usuarios dejarán de funcionar. Para llevar a cabo la degradación sin problemas, es necesario configurar todos los usuarios para que tengan un único método de autenticación antes de hacerlo. Como alternativa, si el servidor se degradó sin seguir el procedimiento adecuado, se deben eliminar los usuarios defectuosos.
no_password no puede coexistir con otros métodos de autenticación por motivos de seguridad.
Por ello, no es posible ADD un método de autenticación no_password. La consulta siguiente generará un error:
ALTER USER user1 ADD IDENTIFIED WITH no_password
Si quiere eliminar los métodos de autenticación de un usuario y utilizar no_password, debe especificarlo en la siguiente forma de sustitución.
Restablece los métodos de autenticación y añade los especificados en la consulta (efecto de un IDENTIFIED inicial sin la palabra clave ADD):
ALTER USER user1 IDENTIFIED WITH plaintext_password by '1', bcrypt_password by '2', plaintext_password by '3'
Restablece los métodos de autenticación y conserva el último añadido:
ALTER USER user1 RESET AUTHENTICATION METHODS TO NEW
Permite especificar la fecha de expiración y, opcionalmente, la hora de un método de autenticación. Acepta una cadena como parámetro. Se recomienda usar el formato YYYY-MM-DD [hh:mm:ss] [timezone] para valores de fecha y hora. De forma predeterminada, este parámetro es igual a 'infinity'.
La cláusula VALID UNTIL solo puede especificarse junto con un método de autenticación, excepto cuando no se haya especificado ningún método de autenticación en la consulta. En este caso, la cláusula VALID UNTIL se aplicará a todos los métodos de autenticación existentes.
Ejemplos:
ALTER USER name1 VALID UNTIL '2025-01-01'
ALTER USER name1 VALID UNTIL '2025-01-01 12:00:00 UTC'
ALTER USER name1 VALID UNTIL 'infinity'
ALTER USER name1 IDENTIFIED WITH plaintext_password BY 'no_expiration', bcrypt_password BY 'expiration_set' VALID UNTIL'2025-01-01''
Última modificación el 10 de junio de 2026