Usuário admin
default, criado quando o serviço é criado. A senha é fornecida na criação do serviço e pode ser redefinida por usuários do ClickHouse Cloud que tenham a função Admin.
Quando você adiciona usuários SQL ao seu serviço do ClickHouse Cloud, eles precisarão de um nome de usuário SQL e uma senha. Se quiser que eles tenham privilégios de nível administrativo, atribua aos novos usuários a função default_role. Por exemplo, adicionando o usuário clickhouse_admin:
default. Em vez disso, elas serão executadas como um usuário chamado sql-console:${cloud_login_email}, em que cloud_login_email é o e-mail do usuário que está executando a consulta naquele momento.Esses usuários do SQL Console gerados automaticamente têm a função default.Autenticação sem senha
sql_console_admin, com permissões idênticas às de default_role, e sql_console_read_only, com permissões somente leitura.
Os usuários Admin recebem a função sql_console_admin por padrão, então nada muda para eles. No entanto, a função sql_console_read_only permite conceder a usuários não Admin acesso somente leitura ou acesso total a qualquer instância. Um Admin precisa configurar esse acesso. As funções podem ser ajustadas com os comandos GRANT ou REVOKE para atender melhor aos requisitos específicos de cada instância, e todas as modificações feitas nessas funções serão mantidas.
Controle de acesso granular
sql_console_* aos usuários, devem ser criadas funções de banco de dados específicos por usuário do console SQL que sigam o namespace sql-console-role:<email>. Por exemplo:
sql_console_sa_role e sql_console_pm_role e concedê-las a usuários específicos. Por exemplo:
Teste os privilégios de administrador
default e entre novamente como o usuário clickhouse_admin.
Todos estes devem funcionar:
Usuários não administradores
Preparação
Criando um banco de dados, uma tabela e linhas de exemplo
Criar um banco de dados de teste
Criar uma tabela
Popular a tabela com linhas de exemplo
Verificar a tabela
Criar column_user
Criar row_user
Criando funções
- serão criadas funções para diferentes privilégios, como colunas e linhas
- os privilégios serão concedidos às funções
- usuários serão atribuídos a cada função
Crie uma função para restringir os usuários dessa função a ver apenas column1 no banco de dados db1 e na tabela table1:
Defina privilégios para permitir a visualização de column1
Adicione o usuário column_user à função column1_users
Crie uma função para restringir os usuários dessa função a ver apenas linhas selecionadas; neste caso, apenas linhas que contenham A em column1
Adicione row_user à função A_rows_users
Crie uma política para permitir a visualização apenas das linhas em que column1 tenha o valor A
Defina privilégios para o banco de dados e a tabela
Conceda permissões explícitas para que outras funções ainda tenham acesso a todas as linhas
Verificação
Testando privilégios da função com usuário com restrição de colunas
Faça login no cliente do ClickHouse usando o usuário clickhouse_admin
Verifique o acesso ao banco de dados, à tabela e a todas as linhas com o usuário admin.
Faça login no cliente do ClickHouse usando o usuário column_user
Teste o SELECT usando todas as colunas
id e column1Verifique a consulta SELECT apenas com as colunas especificadas e permitidas:
Testando privilégios de função com usuário com restrição por linha
Faça login no cliente do ClickHouse usando row_user
Veja as linhas disponíveis
B em column1 não devem ser incluídas.Modificando usuários e funções
role1 permitir apenas SELECT em column1 e role2 permitir SELECT em column1 e column2, o usuário terá acesso a ambas as colunas.
Usando a conta de administrador, crie um novo usuário para restringir por linha e coluna com funções padrão
Remova os privilégios anteriores da função A_rows_users
Permita que a função A_row_users faça SELECT apenas de column1
Faça login no cliente do ClickHouse usando row_and_column_user
Teste com todas as colunas:
Teste com as colunas permitidas:
Solução de problemas
Listar grants e funções de um usuário
Listar funções no ClickHouse
Exibir as políticas
Veja como uma política foi definida e quais são os privilégios atuais
Comandos de exemplo para gerenciar funções, políticas e usuários
- excluir privilégios
- excluir políticas
- desvincular usuários de funções
- excluir usuários e funções