> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-parallel-read-in-order-multi-part.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Documentación de ROLE

# CREATE ROLE

Crea nuevos [roles](/es/concepts/features/security/access-rights#role-management). Un rol es un conjunto de [privilegios](/es/reference/statements/grant#granting-privilege-syntax). Un [usuario](/es/reference/statements/create/user) al que se le asigna un rol obtiene todos los privilegios de ese rol.

Sintaxis:

```sql theme={null}
CREATE ROLE [IF NOT EXISTS | OR REPLACE] name1 [, name2 [,...]] [ON CLUSTER cluster_name]
    [IN access_storage_type]
    [SETTINGS variable [= value] [MIN [=] min_value] [MAX [=] max_value] [CONST|READONLY|WRITABLE|CHANGEABLE_IN_READONLY] | PROFILE 'profile_name'] [,...]
```

`CREATE ROLE` requiere el privilegio [CREATE ROLE](/es/reference/statements/grant#access-management). `OR REPLACE` elimina un rol existente con el mismo nombre, junto con los privilegios que se le hayan concedido, por lo que además requiere el privilegio [DROP ROLE](/es/reference/statements/grant#access-management). El privilegio `DROP ROLE` es necesario para cada nombre indicado en la sentencia, exista o no ese rol, por lo que la sentencia no puede utilizarse para averiguar qué roles existen.

## Administración de roles

A un usuario se le pueden asignar varios roles. Los usuarios pueden activar sus roles asignados en combinaciones arbitrarias mediante la sentencia [SET ROLE](/es/reference/statements/set-role). El alcance final de los privilegios es la combinación de todos los privilegios de todos los roles activados. Si un usuario tiene privilegios otorgados directamente a su cuenta de usuario, estos también se combinan con los privilegios otorgados por los roles.

Un usuario puede tener roles predeterminados que se aplican al iniciar sesión. Para establecer roles predeterminados, use la sentencia [SET DEFAULT ROLE](/es/reference/statements/set-role#set-default-role) o la sentencia [ALTER USER](/es/reference/statements/alter/user).

Para revocar un rol, use la sentencia [REVOKE](/es/reference/statements/revoke).

Para eliminar un rol, use la sentencia [DROP ROLE](/es/reference/statements/drop#drop-role). El rol eliminado se revoca automáticamente de todos los usuarios y roles a los que se había asignado.

## Ejemplos

```sql theme={null}
CREATE ROLE accountant;
GRANT SELECT ON db.* TO accountant;
```

Esta secuencia de consultas crea el rol `accountant`, que tiene el privilegio de leer datos de la base de datos `db`.

Asignación del rol al usuario `mira`:

```sql theme={null}
GRANT accountant TO mira;
```

Una vez asignado el rol, el usuario puede aplicarlo y ejecutar las consultas permitidas. Por ejemplo:

```sql theme={null}
SET ROLE accountant;
SELECT * FROM db.*;
```
