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:
Al usar la consola SQL, tus sentencias SQL no se ejecutarán con el usuario
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
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
sql_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
1
Crear una base de datos de prueba
2
Crear una tabla
3
Poblar la tabla con filas de ejemplo
4
Verificar la tabla
Consulta
Respuesta
5
Crear column_user
Cree un usuario estándar que se utilizará para demostrar la restricción de acceso a determinadas columnas:6
Crear row_user
Cree un usuario estándar que se utilizará para demostrar la restricción de acceso a filas con determinados valores: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
1
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:
2
Establecer privilegios para permitir ver column1
3
Añadir el usuario column_user al rol column1_users
4
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
5
Añadir row_user al rol A_rows_users
6
Crear una política para permitir ver solo las filas en las que column1 tenga el valor A
7
Establecer privilegios para la base de datos y la tabla
8
Otorgar permisos explícitos para que otros roles sigan teniendo acceso a todas las filas
Al adjuntar una política a una tabla, el sistema aplicará esa política, y solo los usuarios y roles definidos podrán realizar operaciones sobre la tabla; a todos los demás se les denegará cualquier operación. Para evitar que la política restrictiva de filas se aplique a otros usuarios, se debe definir otra política que permita a otros usuarios y roles tener acceso normal u otros tipos de acceso.
Verificación
Comprobación de los privilegios del rol con un usuario restringido por columnas
1
Inicie sesión en el cliente de ClickHouse con el usuario clickhouse_admin
2
Verifique el acceso a la base de datos, la tabla y todas las filas con el usuario administrador.
3
Inicie sesión en el cliente de ClickHouse con el usuario column_user
4
Pruebe SELECT con todas las columnas
Se deniega el acceso porque se especificaron todas las columnas y el usuario solo tiene acceso a
id y column15
Verifique la consulta SELECT usando solo las columnas especificadas y permitidas:
Probar los privilegios del rol con un usuario restringido por filas
1
Inicie sesión en el cliente de ClickHouse con row_user
2
Ver las filas disponibles
Verifique que solo se devuelvan las dos filas anteriores; deben excluirse las filas con el valor
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.
1
Con la cuenta de administrador, cree un usuario nuevo para restringir tanto por fila como por columna con roles predeterminados
2
Elimine los privilegios previos del rol A_rows_users
3
Permita que el rol A_row_users solo haga SELECT de column1
4
Inicie sesión en el cliente de ClickHouse con row_and_column_user
5
Pruebe con todas las columnas:
6
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