Modifie les comptes d’utilisateur ClickHouse.
Syntaxe :
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' [,...] ]
Pour utiliser ALTER USER, vous devez disposer du privilège ALTER USER.
Spécifie les utilisateurs ou les rôles autorisés à recevoir des privilèges de cet utilisateur, à condition que celui-ci dispose également de tous les droits d’accès requis accordés avec GRANT OPTION. Options de la clause GRANTEES :
user — Spécifie un utilisateur auquel cet utilisateur peut accorder des privilèges.
role — Spécifie un rôle auquel cet utilisateur peut accorder des privilèges.
ANY — Cet utilisateur peut accorder des privilèges à n’importe qui. Il s’agit du paramètre par défaut.
NONE — Cet utilisateur ne peut accorder de privilèges à personne.
Vous pouvez exclure n’importe quel utilisateur ou rôle à l’aide de l’expression EXCEPT. Par exemple, ALTER USER user1 GRANTEES ANY EXCEPT user2. Cela signifie que si user1 dispose de privilèges accordés avec GRANT OPTION, il pourra les accorder à n’importe qui, sauf à user2.
Définissez les rôles attribués comme rôles par défaut :
ALTER USER user DEFAULT ROLE role1, role2
Si aucun rôle n’a été attribué au préalable à un utilisateur, ClickHouse lève une exception.
Définissez tous les rôles attribués comme rôles par défaut :
ALTER USER user DEFAULT ROLE ALL
Si un rôle est attribué à un utilisateur ultérieurement, il deviendra automatiquement le rôle par défaut.
Définissez tous les rôles attribués par défaut, à l’exception de role1 et role2 :
ALTER USER user DEFAULT ROLE ALL EXCEPT role1, role2
Permet à l’utilisateur du compte john d’accorder ses privilèges à l’utilisateur du compte jack :
ALTER USER john GRANTEES jack;
Ajoute de nouvelles méthodes d’authentification à l’utilisateur tout en conservant celles existantes :
ALTER USER user1 ADD IDENTIFIED WITH plaintext_password by '1', bcrypt_password by '2', plaintext_password by '3'
Remarques :
- Les anciennes versions de ClickHouse peuvent ne pas prendre en charge la syntaxe associée à plusieurs méthodes d’authentification. Par conséquent, si le serveur ClickHouse contient de tels utilisateurs et qu’il est rétrogradé vers une version qui ne prend pas cette syntaxe en charge, ces utilisateurs deviendront inutilisables et certaines opérations liées aux utilisateurs ne fonctionneront plus. Pour effectuer la rétrogradation correctement, il faut configurer tous les utilisateurs de sorte qu’ils n’aient qu’une seule méthode d’authentification avant la rétrogradation. Sinon, si le serveur a été rétrogradé sans suivre la procédure appropriée, les utilisateurs défectueux doivent être supprimés.
no_password ne peut pas coexister avec d’autres méthodes d’authentification pour des raisons de sécurité.
Pour cette raison, il n’est pas possible d’ADD une méthode d’authentification no_password. La requête ci-dessous générera une erreur :
ALTER USER user1 ADD IDENTIFIED WITH no_password
Si vous souhaitez supprimer les méthodes d’authentification d’un utilisateur et utiliser no_password, vous devez le préciser dans le formulaire de remplacement ci-dessous.
Réinitialise les méthodes d’authentification et ajoute celles spécifiées dans la requête (effet de IDENTIFIED en tête sans le mot-clé ADD) :
ALTER USER user1 IDENTIFIED WITH plaintext_password by '1', bcrypt_password by '2', plaintext_password by '3'
Réinitialisez les méthodes d’authentification et ne conservez que la dernière ajoutée :
ALTER USER user1 RESET AUTHENTICATION METHODS TO NEW
Permet de spécifier la date d’expiration et, éventuellement, l’heure d’une méthode d’authentification. Elle accepte une chaîne comme paramètre. Il est recommandé d’utiliser le format YYYY-MM-DD [hh:mm:ss] [timezone] pour les valeurs de date et d’heure. Par défaut, ce paramètre vaut 'infinity'.
La clause VALID UNTIL ne peut être spécifiée qu’avec une méthode d’authentification, sauf lorsqu’aucune méthode d’authentification n’a été spécifiée dans la requête. Dans ce cas, la clause VALID UNTIL sera appliquée à toutes les méthodes d’authentification existantes.
Exemples :
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''
Dernière modification le 25 juin 2026