<clickhouse>
...
<kcsuser-write>
<password>*********</password>
<networks>
<ip>::/0</ip>
</networks>
...
<grants>
<query>GRANT kcs_writer_role</query>
</grants>
</kcsuser-write>
<kcsuser-read>
<password>*********</password>
<networks>
<ip>::/0</ip>
</networks>
...
<grants>
<query>GRANT kcs_reader_role</query>
</grants>
</kcsuser-read>
...
<roles>
<kcs_reader_role>
<grants>
<query>GRANT SELECT ON kcs.*</query>
</grants>
</kcs_reader_role>
<kcs_writer_role>
<grants>
<query>GRANT CREATE TABLE, INSERT, ALTER, UPDATE ON kcs.*</query>
<query>GRANT SELECT (source_ip, source_port, source_alias, dest_ip, dest_port, dest_alias, protocol, severity, action, event_time, count, type) ON kcs.node_agent_events</query>
</grants>
</kcs_writer_role>
...
</roles>
...
</clickhouse>
<clickhouse>
...
<kcsuser-write>
<ssl_certificates>
<common_name>kcsuser-write</common_name>
</ssl_certificates>
<networks>
<ip>::/0</ip>
</networks>
...
<grants>
<query>GRANT kcs_writer_role</query>
</grants>
</kcsuser-write>
<kcsuser-read>
<ssl_certificates>
<common_name>kcsuser-read</common_name>
</ssl_certificates>
<networks>
<ip>::/0</ip>
</networks>
...
<grants>
<query>GRANT kcs_reader_role</query>
</grants>
</kcsuser-read>
...
<roles>
<kcs_reader_role>
<grants>
<query>GRANT SELECT ON kcs.*</query>
</grants>
</kcs_reader_role>
<kcs_writer_role>
<grants>
<query>GRANT CREATE TABLE, INSERT, ALTER, UPDATE ON kcs.*</query>
<query>GRANT SELECT (source_ip, source_port, source_alias, dest_ip, dest_port, dest_alias, protocol, severity, action, event_time, count, type) ON kcs.node_agent_events</query>
</grants>
</kcs_writer_role>
...
</roles>
...
</clickhouse>