- Un flujo de trabajo basado en SQL. Debe habilitar esta funcionalidad.
-
Los archivos de configuración del servidor
users.xmlyconfig.xml.
No puede gestionar la misma entidad de acceso con ambos métodos de configuración al mismo tiempo.
Si desea gestionar los usuarios de la consola de ClickHouse Cloud, consulte esta página
SHOW ACCESS.
Descripción general
default, que no puede usar el control de acceso y la gestión de cuentas basados en SQL, pero sí tiene todos los derechos y permisos. La cuenta de usuario default se utiliza siempre que no se define un nombre de usuario; por ejemplo, al iniciar sesión desde un cliente o en consultas distribuidas. En el procesamiento de consultas distribuidas, se utiliza una cuenta de usuario predeterminada si la configuración del servidor o del clúster no especifica las propiedades de usuario y contraseña.
Si acaba de empezar a usar ClickHouse, tenga en cuenta el siguiente escenario:
- Habilite el control de acceso y la gestión de cuentas basados en SQL para el usuario
default. - Inicie sesión en la cuenta de usuario
defaulty cree todos los usuarios necesarios. No olvide crear una cuenta de administrador (GRANT ALL ON *.* TO admin_user_account WITH GRANT OPTION). - Restrinja los permisos del usuario
defaulty deshabilite para esa cuenta el control de acceso y la gestión de cuentas basados en SQL.
Propiedades de la solución actual
- Se pueden otorgar permisos para bases de datos y tablas aunque no existan.
- Si se elimina una tabla, no se revoca ninguno de los privilegios correspondientes a esa tabla. Esto significa que, incluso si más adelante crea una tabla nueva con el mismo nombre, todos los privilegios siguen siendo válidos. Para revocar los privilegios correspondientes a la tabla eliminada, debe ejecutar, por ejemplo, la consulta
REVOKE ALL PRIVILEGES ON db.table FROM ALL. - No hay ajustes de vigencia para los privilegios.
Cuenta de usuario
- Información de identificación.
- Privilegios que definen el alcance de las consultas que el usuario puede ejecutar.
- Hosts autorizados para conectarse al servidor de ClickHouse.
- Roles asignados y predeterminados.
- Configuraciones con sus restricciones aplicadas de forma predeterminada al iniciar sesión.
- Perfiles de configuración asignados.
Aplicación de la configuración
- Configuración de la cuenta de usuario.
- La configuración de los roles predeterminados de la cuenta de usuario. Si una configuración está definida en algunos roles, el orden en que se aplica no está definido.
- La configuración de los perfiles de configuración asignados a un usuario o a sus roles predeterminados. Si una configuración está definida en algunos perfiles, el orden en que se aplica no está definido.
- Configuración aplicada a todo el servidor de forma predeterminada o desde el perfil predeterminado.
Rol
- Privilegios
- Configuración y restricciones
- Lista de roles asignados
Política de filas
Las políticas de filas solo tienen sentido si tienes acceso de solo lectura. Si puedes modificar una tabla o copiar particiones entre tablas, las restricciones de las políticas de filas dejan de tener efecto.
Perfil de configuración
- CREATE SETTINGS PROFILE
- ALTER SETTINGS PROFILE
- DROP SETTINGS PROFILE
- SHOW CREATE SETTINGS PROFILE
- SHOW PROFILES
Cuota
Habilitar el control de acceso y la gestión de cuentas basado en SQL
- Configure un directorio para almacenar la configuración. ClickHouse almacena las configuraciones de las entidades de acceso en la carpeta definida en el parámetro de configuración del servidor access_control_path.
-
Habilite el control de acceso y la gestión de cuentas basado en SQL para al menos una cuenta de usuario.
De forma predeterminada, el control de acceso y la gestión de cuentas basado en SQL están deshabilitados para todos los usuarios. Debe configurar al menos un usuario en el archivo de configuración
users.xmly establecer en 1 los valores de las opcionesaccess_management,named_collection_control,show_named_collectionsyshow_named_collections_secrets.
Definición de usuarios y roles de SQL
Habilitación del modo de usuario SQL
- Habilite el modo de usuario SQL en el archivo
users.xml, dentro del usuario<default>:
El usuario
default es el único que se crea con una instalación nueva y, de forma predeterminada, también es la cuenta que se usa para la comunicación entre nodos.En producción, se recomienda deshabilitar este usuario una vez que la comunicación entre nodos se haya configurado con un usuario administrador SQL y se hayan establecido las comunicaciones entre nodos con <secret>, credenciales del clúster y/o credenciales HTTP y del protocolo de transporte entre nodos, ya que la cuenta default se utiliza para la comunicación entre nodos.- Reinicie los nodos para aplicar los cambios.
-
Inicie el cliente de ClickHouse:
Definir usuarios
- Cree una cuenta de administrador de SQL:
- Conceda al nuevo usuario privilegios administrativos completos
Permisos de ALTER
ALTER para usuarios con privilegios.
Las sentencias ALTER se dividen en varias categorías; algunas son jerárquicas y otras no, por lo que deben definirse explícitamente.
Configuración de ejemplo de la DB, la tabla y el usuario
- Con un usuario administrador, crea un usuario de ejemplo
- Crear una base de datos de ejemplo
- Crear una tabla de muestra
- Cree un usuario administrador de ejemplo para otorgar/revocar privilegios
Para conceder o revocar permisos, el usuario administrador debe tener el privilegio Para ejecutar
WITH GRANT OPTION.
Por ejemplo:GRANT o REVOKE sobre privilegios, el usuario primero debe tener esos mismos privilegios.ALTER:
- Concesión de privilegios
ALTERa un usuario o rol
GRANT ALTER on *.* TO my_user solo afecta a ALTER TABLE y ALTER VIEW de nivel superior; las demás sentencias ALTER deben concederse o revocarse individualmente.
Por ejemplo, para conceder el privilegio básico de ALTER:
ALTER TABLE y ALTER VIEW del ejemplo anterior; sin embargo, no otorgará algunos otros permisos de ALTER, como ALTER ROW POLICY (vuelva a la jerarquía y verá que ALTER ROW POLICY no depende de ALTER TABLE ni de ALTER VIEW). Estos deben otorgarse o revocarse explícitamente.
Si solo se necesita un subconjunto de permisos de ALTER, cada uno puede otorgarse por separado; si ese permiso tiene subprivilegios, estos también se otorgarán automáticamente.
Por ejemplo:
- Revocar privilegios
ALTERa usuarios y roles
REVOKE funciona de forma similar a la sentencia GRANT.
Si a un usuario/rol se le otorgó un subprivilegio, puede revocar dicho subprivilegio directamente o revocar el privilegio de nivel superior del que este hereda.
Por ejemplo, si al usuario se le concedió ALTER ADD COLUMN
WITH GRANT OPTION, sino que también cuente con dichos privilegios.
- Para otorgar a un usuario Admin este privilegio y permitirle además administrar un conjunto de privilegios A continuación se muestra un ejemplo:
ALTER COLUMN y todos los subprivilegios.
Pruebas
- Añadir el privilegio
SELECT
- Conceda al usuario el privilegio para agregar columnas
- Inicia sesión con el usuario restringido
- Probar la adición de una columna
- Probar a eliminar una columna
- Probar ALTER ADMIN otorgando el permiso
- Inicia sesión con el usuario administrador de alter
- Conceda un subprivilegio
- Compruebe que otorgar un privilegio que el usuario administrador de ALTER no tiene no sea un subprivilegio de los grants del usuario administrador.
ALTER en tablas y vistas, pero no para otras sentencias ALTER. Los permisos pueden establecerse de forma granular o mediante grupos de permisos, y también revocarse de la misma manera. El usuario que otorga o revoca debe tener WITH GRANT OPTION para establecer privilegios a usuarios, incluido el propio usuario que realiza la acción, y ya debe contar con ese privilegio. El usuario que realiza la acción no puede revocar sus propios privilegios si él mismo no tiene el privilegio de opción de concesión.