Cláusula USING
Cláusula TO
TO, você pode informar uma lista de usuários e roles para os quais esta política deve se aplicar. Por exemplo, CREATE ROW POLICY ... TO accountant, john@localhost.
A palavra-chave ALL significa todos os usuários do ClickHouse, incluindo o usuário atual. A palavra-chave ALL EXCEPT permite excluir alguns usuários da lista de todos os usuários, por exemplo, CREATE ROW POLICY ... TO ALL EXCEPT accountant, john@localhost
Cláusula AS
OR. Por exemplo, as seguintes políticas:
peter ver linhas com b=1 ou c=2.
A cláusula AS especifica como as políticas devem ser combinadas com outras políticas. As políticas podem ser permissivas ou restritivas. Por padrão, as políticas são permissivas, o que significa que são combinadas usando o operador booleano OR.
Como alternativa, uma política pode ser definida como restritiva. As políticas restritivas são combinadas usando o operador booleano AND.
Aqui está a fórmula geral:
peter veja linhas apenas se b=1 E c=2.
As políticas de banco de dados são combinadas com as políticas da tabela.
Por exemplo, as seguintes políticas:
peter ver as linhas da table1 somente se b=1 AND c=2, embora
qualquer outra tabela em mydb tenha apenas a política b=1 aplicada ao usuário.
Cláusula ON CLUSTER
Exemplos
CREATE ROW POLICY filter1 ON mydb.mytable USING a<1000 TO accountant, john@localhost
CREATE ROW POLICY filter2 ON mydb.mytable USING a<1000 AND b=5 TO ALL EXCEPT mira
CREATE ROW POLICY filter3 ON mydb.mytable USING 1 TO admin
CREATE ROW POLICY filter4 ON mydb.* USING 1 TO admin