Usuário admin
Os serviços do ClickHouse Cloud têm um 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
Há duas funções disponíveis para o Console SQL: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
Essa funcionalidade de controle de acesso também pode ser configurada manualmente com granularidade por usuário. Antes de atribuir as novas funçõessql_console_* aos usuários, devem ser criadas funções de banco de dados específicos por usuário do SQL Console 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