> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-8c05c8a2.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'] [,...]
```

<div id="managing-roles">
  ## Administración de roles
</div>

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.

<div id="examples">
  ## Ejemplos
</div>

```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 usarlo y ejecutar las consultas permitidas. Por ejemplo:

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