Usuario Admin
Los servicios de ClickHouse Cloud tienen un usuario Admin,default, que se crea al crear el servicio. La contraseña se proporciona durante la creación del servicio y los usuarios de ClickHouse Cloud que tienen el rol Admin pueden restablecerla.
Cuando agregue usuarios SQL adicionales a su servicio de ClickHouse Cloud, necesitarán un username y una password de SQL. Si desea que tengan privilegios de nivel administrativo, asigne a los nuevos usuarios el rol default_role. Por ejemplo, para agregar el usuario clickhouse_admin:
default. En su lugar, se ejecutarán con un usuario llamado sql-console:${cloud_login_email}, donde cloud_login_email es el correo electrónico del usuario que está ejecutando la consulta en ese momento.Estos usuarios de consola SQL generados automáticamente tienen el rol default.Autenticación sin contraseña
Hay dos roles disponibles para la consola SQL:sql_console_admin, con permisos idénticos a default_role, y sql_console_read_only, con permisos de solo lectura.
A los usuarios Admin se les asigna el rol sql_console_admin de forma predeterminada, por lo que para ellos no cambia nada. Sin embargo, el rol sql_console_read_only permite conceder a los usuarios que no son Admin acceso de solo lectura o acceso completo a cualquier instancia. Un Admin debe configurar este acceso. Los roles pueden ajustarse mediante los comandos GRANT o REVOKE para adaptarse mejor a los requisitos específicos de cada instancia, y cualquier modificación que se haga en ellos se conservará.
Control de acceso granular
Esta funcionalidad de control de acceso también puede configurarse manualmente con granularidad a nivel de usuario. Antes de asignar a los usuarios los nuevos rolessql_console_*, deben crearse roles de base de datos específicos por usuario para la consola SQL que coincidan con el espacio de nombres sql-console-role:<email>. Por ejemplo:
sql_console_sa_role y sql_console_pm_role y concedérselos a usuarios específicos. Por ejemplo:
Probar los privilegios de administrador
default y vuelva a iniciarla con el usuario clickhouse_admin.
Todo lo siguiente debería realizarse correctamente:
Usuarios no administradores
Preparación
Crear una base de datos, una tabla y filas de ejemplo
Crear una base de datos de prueba
Crear una tabla
Poblar la tabla con filas de ejemplo
Verificar la tabla
Crear column_user
Crear row_user
Creación de roles
- se crearán roles con distintos privilegios, como acceso por columnas y filas
- se otorgarán privilegios a los roles
- se asignarán usuarios a cada rol
Crear un rol para restringir a los usuarios de este rol a que solo puedan ver column1 en la base de datos db1 y la tabla table1:
Establecer privilegios para permitir ver column1
Añadir el usuario column_user al rol column1_users
Crear un rol para restringir a los usuarios de este rol a que solo puedan ver determinadas filas; en este caso, solo las filas que contengan A en column1
Añadir row_user al rol A_rows_users
Crear una política para permitir ver solo las filas en las que column1 tenga el valor A
Establecer privilegios para la base de datos y la tabla
Otorgar permisos explícitos para que otros roles sigan teniendo acceso a todas las filas
Verificación
Comprobación de los privilegios del rol con un usuario restringido por columnas
Inicie sesión en el cliente de ClickHouse con el usuario clickhouse_admin
Verifique el acceso a la base de datos, la tabla y todas las filas con el usuario administrador.
Inicie sesión en el cliente de ClickHouse con el usuario column_user
Pruebe SELECT con todas las columnas
id y column1Verifique la consulta SELECT usando solo las columnas especificadas y permitidas:
Probar los privilegios del rol con un usuario restringido por filas
Inicie sesión en el cliente de ClickHouse con row_user
Ver las filas disponibles
B en column1.Modificar usuarios y roles
role1 permite solo hacer SELECT en column1 y role2 permite hacer SELECT en column1 y column2, entonces el usuario tendrá acceso a ambas columnas.
Con la cuenta de administrador, cree un usuario nuevo para restringir tanto por fila como por columna con roles predeterminados
Elimine los privilegios previos del rol A_rows_users
Permita que el rol A_row_users solo haga SELECT de column1
Inicie sesión en el cliente de ClickHouse con row_and_column_user
Pruebe con todas las columnas:
Pruebe con las columnas permitidas:
Resolución de problemas
Listado de grants y roles de un usuario
Mostrar los roles en ClickHouse
Mostrar las políticas
Ver cómo se definió una política y cuáles son los privilegios actuales
Comandos de ejemplo para gestionar roles, políticas y usuarios
- eliminar privilegios
- eliminar políticas
- desvincular usuarios de roles
- eliminar usuarios y roles