Utilisateur admin
default, créé lors de la création du service. Le mot de passe est fourni à ce moment-là et peut être réinitialisé par les utilisateurs de ClickHouse Cloud disposant du rôle Admin.
Lorsque vous ajoutez des utilisateurs SQL supplémentaires à votre service ClickHouse Cloud, ils doivent avoir un nom d’utilisateur SQL et un mot de passe. Si vous souhaitez leur accorder des privilèges de niveau administratif, attribuez aux nouveaux utilisateurs le rôle default_role. Par exemple, pour ajouter l’utilisateur clickhouse_admin :
default. Elles sont exécutées à la place en tant qu’utilisateur nommé sql-console:${cloud_login_email}, où cloud_login_email correspond à l’adresse e-mail de l’utilisateur qui exécute actuellement la requête.Ces utilisateurs de la SQL Console générés automatiquement disposent du rôle default.Authentification sans mot de passe
sql_console_admin, avec des autorisations identiques à default_role, et sql_console_read_only, avec des autorisations en lecture seule.
Les utilisateurs Admin se voient attribuer par défaut le rôle sql_console_admin, donc rien ne change pour eux. En revanche, le rôle sql_console_read_only permet d’accorder à des utilisateurs non Admin un accès en lecture seule ou un accès complet à n’importe quelle instance. Un administrateur doit configurer cet accès. Les rôles peuvent être ajustés à l’aide des commandes GRANT ou REVOKE afin de mieux répondre aux exigences propres à chaque instance, et toute modification apportée à ces rôles sera conservée.
Contrôle d’accès granulaire
sql_console_* aux utilisateurs, il convient de créer des rôles de base de données propres aux utilisateurs de la SQL Console, correspondant à l’espace de noms sql-console-role:<email>. Par exemple :
sql_console_sa_role et sql_console_pm_role, puis en les attribuant à des utilisateurs spécifiques. Par exemple :
Tester les privilèges d’administrateur
default, puis reconnectez-vous en tant qu’utilisateur clickhouse_admin.
Toutes les opérations suivantes devraient réussir :
Utilisateurs non administrateurs
Préparation
Création d’une base de données, d’une table et de lignes d’exemple
Créer une base de données de test
Créer une table
Remplir la table avec des lignes d’exemple
Vérifier la table
Créer column_user
Créer row_user
Création de rôles
- des rôles avec différents privilèges, au niveau des colonnes et des lignes, seront créés
- des privilèges seront accordés aux rôles
- des utilisateurs seront affectés à chaque rôle
Créer un rôle pour limiter les utilisateurs de ce rôle à la consultation de column1 uniquement dans la base de données db1 et la table table1 :
Définir les privilèges pour autoriser l’accès à column1
Ajouter l’utilisateur column_user au rôle column1_users
Créer un rôle pour limiter les utilisateurs de ce rôle à la consultation de certaines lignes uniquement, en l’occurrence celles contenant A dans column1
Ajouter l’utilisateur row_user au rôle A_rows_users
Créer une politique pour autoriser l’accès uniquement aux lignes où column1 a la valeur A
Définir les privilèges sur la base de données et la table
Accorder des permissions explicites aux autres rôles afin qu’ils conservent l’accès à toutes les lignes
Vérification
Tester les privilèges de rôle avec un utilisateur dont l’accès est restreint à certaines colonnes
Connectez-vous au client ClickHouse avec l’utilisateur clickhouse_admin
Vérifiez l’accès à la base de données, à la table et à toutes les lignes avec l’utilisateur admin.
Connectez-vous au client ClickHouse avec l’utilisateur column_user
Testez SELECT en utilisant toutes les colonnes
id et column1Vérifiez la requête SELECT avec uniquement les colonnes spécifiées et autorisées :
Tester les privilèges du rôle avec un utilisateur soumis à une restriction au niveau des lignes
Connectez-vous au client ClickHouse avec row_user
Affichez les lignes disponibles
column1 vaut B doivent être exclues.Modifier les utilisateurs et les rôles
role1 autorise uniquement select sur column1 et que role2 autorise select sur column1 et column2, l’utilisateur aura accès aux deux colonnes.
À l'aide du compte Admin, créez un nouvel utilisateur avec des rôles par défaut afin de restreindre l'accès à la fois par ligne et par colonne
Supprimez les privilèges précédents du rôle A_rows_users
Autorisez le rôle A_row_users à sélectionner uniquement column1
Connectez-vous au client ClickHouse avec row_and_column_user
Testez avec toutes les colonnes :
Testez avec les colonnes autorisées uniquement :
Dépannage
Lister les grants et rôles d’un utilisateur
Lister les rôles dans ClickHouse
Afficher les politiques
Afficher la définition d’une politique et les privilèges actuels
Exemple de commandes pour gérer les rôles, les politiques et les utilisateurs
- supprimer des privilèges
- supprimer des politiques
- désattribuer des rôles à des utilisateurs
- supprimer des utilisateurs et des rôles