ClickHouse et ClickHouse Cloud prennent tous deux en charge les restrictions d’accès au niveau des lignes et des colonnes
SELECT * FROM table, seules les lignes autorisées par la politique sont affichées.
Les politiques de lignes filtrent la table dont les données sont lues sur ce serveur. Pour filtrer les requêtes qui transitent par une table Distributed, créez la politique sur la table locale sous-jacente de chaque serveur du cluster : une politique sur la table Distributed elle-même ne peut pas être appliquée à la requête envoyée aux serveurs distants, et ces lectures sont rejetées au lieu de renvoyer silencieusement des lignes non filtrées. La politique sur la table locale n’est pas appliquée lorsque l’initiateur envoie un plan de lecture déjà construit ; conservez donc serialize_query_plan = 0 pour les utilisateurs dont les politiques de lignes doivent être appliquées (voir le ticket n°112891).
Les restrictions au niveau des colonnes peuvent être définies directement à l’aide de l’instruction GRANT afin d’activer un accès au niveau de la table pour les utilisateurs et les rôles. Les utilisateurs ne peuvent inclure dans une requête que les colonnes auxquelles ils ont accès. Si une requête sélectionne des colonnes restreintes dans une table alors que l’utilisateur n’a pas accès à toutes les colonnes spécifiées, comme avec SELECT * FROM table, une erreur indiquera que l’utilisateur ne dispose pas des permissions suffisantes.