Saltar al contenido principal
AutogestionadoSi trabaja con ClickHouse autogestionado, consulte usuarios y roles de SQL.
Este artículo presenta los conceptos básicos para definir usuarios y roles de SQL, y para aplicar esos privilegios y permisos a bases de datos, tablas, filas y columnas.

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:
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

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 roles 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:
Cuando se detecte un rol correspondiente, se asignará al usuario en lugar de los roles predefinidos. Esto permite configuraciones de control de acceso más complejas, como crear roles como sql_console_sa_role y sql_console_pm_role y concedérselos a usuarios específicos. Por ejemplo:

Probar los privilegios de administrador

Cierre sesión con el usuario default y vuelva a iniciarla con el usuario clickhouse_admin. Todo lo siguiente debería realizarse correctamente:

Usuarios no administradores

Los usuarios deben tener los privilegios necesarios, y no todos deben ser administradores. En el resto de este documento se presentan escenarios de ejemplo y los roles necesarios.

Preparación

Cree estas tablas y usuarios que se usarán en los ejemplos.

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

Con este conjunto de ejemplos:
  • 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
Los roles se utilizan para definir grupos de usuarios con determinados privilegios, en lugar de administrar cada usuario por separado.
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 column1
5
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

A los usuarios se les pueden asignar varios roles para obtener la combinación de privilegios necesaria. Al usar varios roles, el sistema los combinará para determinar los privilegios; en la práctica, los permisos de los roles serán acumulativos. Por ejemplo, si 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

A veces, los privilegios se superponen o se combinan de forma que producen resultados inesperados; los siguientes comandos pueden usarse para acotar el problema con una cuenta de administrador

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

Los siguientes comandos se pueden usar para:
  • eliminar privilegios
  • eliminar políticas
  • desvincular usuarios de roles
  • eliminar usuarios y roles
Ejecuta estos comandos con un usuario administrador o con el usuario default

Eliminar un privilegio de un rol

Eliminar una política

Quitar un usuario de un rol

Eliminar un rol

Eliminar un usuario

Resumen

En este artículo se explicaron los conceptos básicos para crear usuarios y roles de SQL, y se indicaron los pasos para establecer y modificar los privilegios de usuarios y roles. Para obtener información más detallada sobre cada uno de ellos, consulte nuestras guías de usuario y la documentación de referencia.
Última modificación el 2 de julio de 2026