

 Amazon Redshift dejará de admitir la creación de nuevas UDF de Python a partir del parche 198. Las UDF de Python existentes seguirán funcionando hasta el 30 de junio de 2026. Para obtener más información, consulte la [publicación del blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# CREATE USER
<a name="r_CREATE_USER"></a>

Crea un nuevo usuario de base de datos. Los usuarios de base de datos pueden recuperar datos, ejecutar comandos y realizar otras acciones en una base de datos, en función de sus privilegios y roles. Debe ser un superusuario de base de datos para ejecutar este comando.

## Privilegios necesarios
<a name="r_CREATE_USER-privileges"></a>

Los siguientes privilegios son necesarios para CREATE USER:
+ Superusuario
+ Usuarios con el privilegio CREATE USER

## Sintaxis
<a name="r_CREATE_USER-synopsis"></a>

```
CREATE USER name [ WITH ]
PASSWORD { 'password' | 'md5hash' | 'sha256hash' | DISABLE }
[ option [ ... ] ]

where option can be:

CREATEDB | NOCREATEDB
| CREATEUSER | NOCREATEUSER
| SYSLOG ACCESS { RESTRICTED | UNRESTRICTED }
| IN GROUP groupname [, ... ]
| VALID UNTIL 'abstime'
| CONNECTION LIMIT { limit | UNLIMITED }
| SESSION TIMEOUT limit
| EXTERNALID external_id
```

## Parameters
<a name="r_CREATE_USER-parameters"></a>

 *name*   
Nombre del usuario que se va a crear. El nombre de usuario no puede ser `PUBLIC`. Para obtener más información acerca de los nombres válidos, consulte [Nombres e identificadores](r_names.md).

WITH  
Palabra clave opcional. Amazon Redshift ignora la palabra WITH.

PASSWORD \$1 '*password*' \$1 '*md5hash*' \$1 '*sha256hash*' \$1 DISABLE \$1  
Establece la contraseña del usuario.   
De manera predeterminada, los usuarios pueden cambiar sus propias contraseñas, a menos que la contraseña esté deshabilitada. Para deshabilitar la contraseña de un usuario, especifique DISABLE. Cuando se deshabilita la contraseña de un usuario, se elimina del sistema y el usuario solo puede iniciar sesión con credenciales de usuario de AWS Identity and Access Management IAM temporales. Para obtener más información, consulte [Uso de la autenticación de IAM para generar credenciales de usuario de base de datos](https://docs.aws.amazon.com/redshift/latest/mgmt/generating-user-credentials.html). Solo un superusuario puede habilitar o deshabilitar contraseñas. No puede deshabilitar la contraseña de un superusuario. Para habilitar una contraseña, ejecute [ALTER USER](r_ALTER_USER.md) y especifique una contraseña.  
Puede especificar la contraseña en texto sin cifrar, como una cadena hash MD5 o como una cadena de algoritmo hash seguro-256.   
 Cuando lanza un clúster nuevo a través de la Consola de administración de AWS, la AWS CLI o la API de Amazon Redshift, debe proporcionar una contraseña de texto sin cifrar para el usuario inicial de la base de datos. Puede cambiar la contraseña en otro momento al utilizar [ALTER USER](r_ALTER_USER.md). 
Para texto sin cifrar, la contraseña debe cumplir con las siguientes restricciones:  
+ Tener entre 8 y 64 caracteres de longitud.
+ Contener al menos una letra en mayúsculas, una letra en minúsculas y un número.
+ Puede utilizar cualquier carácter ASCII con códigos ASCII del rango 33-126, excepto ' (comilla simple), " (comilla doble), \$1, / o @.
Como una alternativa más segura para especificar el parámetro de contraseña CREATE USER como texto sin cifrar, puede especificar un hash MD5 de una cadena que incluya la contraseña y el nombre de usuario.   
Cuando especifica una cadena hash MD5, el comando CREATE USER busca una cadena hash MD5 válida, pero no valida la porción de la contraseña de la cadena. En este caso es posible crear una contraseña, como una cadena vacía, que no puede usar para ingresar en la base de datos.
Siga estos pasos para especificar una contraseña MD5:   

1. Concatene la contraseña y el nombre de usuario. 

   Por ejemplo, para la contraseña `ez` y el usuario `user1`, la cadena concatenada es `ezuser1`. 

1. Convierta la cadena concatenada en una cadena hash MD5 de 32 caracteres. Puede usar cualquier utilidad MD5 para crear la cadena hash. En el siguiente ejemplo, se utiliza [Función MD5](r_MD5.md) de Amazon Redshift y el operador de concatenación (\$1\$1) para devolver una cadena hash MD5 de 32 caracteres. 

   ```
   select md5('ez' || 'user1');
                           
   md5
   --------------------------------
   153c434b4b77c89e6b94f12c5393af5b
   ```

1. Concatene "`md5`" delante de la cadena hash MD5 y proporcione la cadena concatenada como argumento *md5hash*.

   ```
   create user user1 password 'md5153c434b4b77c89e6b94f12c5393af5b';
   ```

1. Inicie sesión en la base de datos con las credenciales de inicio de sesión. 

   Para este ejemplo, ingrese como `user1` con la contraseña `ez`. 
Otra alternativa segura es especificar un hash de algoritmo hash seguro-256 de una cadena de contraseñas; o puede proporcionar su propio resumen de algoritmo hash seguro-256 válido y la sal de 256 bits que se utilizó para crear el resumen.  
+ Resumen: salida de una función de hash.
+ Sal: datos generados aleatoriamente que se combinan con la contraseña para ayudar a reducir los patrones en la salida de la función hash.

```
'sha256|Mypassword'
```

```
'sha256|digest|256-bit-salt'
```
En el siguiente ejemplo, Amazon Redshift genera y administra la sal.   

```
CREATE USER admin PASSWORD 'sha256|Mypassword1';
```
En el siguiente ejemplo, se proporciona un resumen de algoritmo hash seguro-256 válido y una sal de 256 bits que se utilizó para crear el resumen.  
Para especificar una contraseña y cifrarla con tu propio valor de salt, sigue estos pasos:  

1. Cree un valor de salt de 256 bits. Puede obtener un valor de salt utilizando cualquier generador de cadenas hexadecimales para generar una cadena de 64 caracteres de longitud. En este ejemplo, el valor de salt es `c721bff5d9042cf541ff7b9d48fa8a6e545c19a763e3710151f9513038b0f6c6`. 

1.  Utilice la función FROM\$1HEX para convertir su valor de salt en binario. Esto se debe a que la función SHA2 requiere la representación binaria del valor de salt. Utilice la siguiente instrucción. 

   ```
   SELECT FROM_HEX('c721bff5d9042cf541ff7b9d48fa8a6e545c19a763e3710151f9513038b0f6c6');
   ```

1.  Utilice la función CONCAT para anexar su valor de salt a su contraseña. Para este ejemplo, la contraseña es `Mypassword1`. Utilice la siguiente instrucción. 

   ```
   SELECT CONCAT('Mypassword1',FROM_HEX('c721bff5d9042cf541ff7b9d48fa8a6e545c19a763e3710151f9513038b0f6c6'));
   ```

1. Utilice la función SHA2 para crear un resumen a partir de la combinación de contraseña y valor de salt. Utilice la siguiente instrucción.

   ```
   SELECT SHA2(CONCAT('Mypassword1',FROM_HEX('c721bff5d9042cf541ff7b9d48fa8a6e545c19a763e3710151f9513038b0f6c6')), 0);
   ```

1.  Mediante el resumen y el valor de sal de los pasos anteriores, cree el usuario. Utilice la siguiente instrucción. 

   ```
   CREATE USER admin PASSWORD 'sha256|821708135fcc42eb3afda85286dee0ed15c2c461d000291609f77eb113073ec2|c721bff5d9042cf541ff7b9d48fa8a6e545c19a763e3710151f9513038b0f6c6';
   ```

1. Inicie sesión en la base de datos con las credenciales de inicio de sesión.

    Para este ejemplo, ingrese como `admin` con la contraseña `Mypassword1`.
Si configura una contraseña en texto sin formato sin especificar la función de hash, se genera un resumen MD5 utilizando el nombre de usuario como la sal. 

CREATEDB \$1 NOCREATEDB   
La opción CREATEDB permite que el usuario cree bases de datos. El valor predeterminado es NOCREATEDB.

CREATEUSER \$1 NOCREATEUSER   
La opción CREATEUSER crea un superusuario con todos los privilegios de base de datos, incluido CREATE USER. El valor predeterminado es NOCREATEUSER. Para obtener más información, consulte [Superusuarios](r_superusers.md).

SYSLOG ACCESS \$1 RESTRICTED \$1 UNRESTRICTED \$1  <a name="create-user-syslog-access"></a>
Se trata de una cláusula que especifica el nivel de acceso a las vistas y las tablas de sistema de Amazon Redshift que tiene el usuario.   
Los usuarios normales que tengan el permiso SYSLOG ACCESS RESTRICTED solo pueden ver las filas generadas por ese usuario en las tablas y vistas del sistema visibles para el usuario. El valor predeterminado es RESTRICTED.   
Los usuarios normales que tengan el permiso SYSLOG ACCESS UNRESTRICTED pueden ver todas las filas en las tablas y vistas del sistema visibles para el usuario, incluidas las filas generadas por otro usuario. UNRESTRICTED no permite que los usuarios normales puedan obtener acceso a las tablas visibles para los superusuarios. Solo los superusuarios pueden ver estas tablas.   
Al brindar a un usuario acceso sin restricciones a las tablas del sistema, le proporciona la visibilidad necesaria para ver los datos generados por otros usuarios. Por ejemplo, STL\$1QUERY y STL\$1QUERYTEXT contienen todo el texto de las instrucciones INSERT, UPDATE y DELETE, que podrían incluir datos confidenciales generados por los usuarios. 
Todas las filas de SVV\$1TRANSACTIONS son visibles para todos los usuarios.   
Para obtener más información, consulte [Visibilidad de datos en las tablas y vistas de sistema](cm_chap_system-tables.md#c_visibility-of-data).

IN GROUP *groupname*   
Especifica el nombre de un grupo existente al que pertenece el usuario. Se pueden enumerar varios nombres de grupos.

VALID UNTIL *abstime*   
La opción VALID UNTIL establece un tiempo absoluto después del cual la contraseña de la cuenta de usuario ya no es válida. Por defecto, la contraseña no tiene límite de tiempo.

CONNECTION LIMIT \$1 *limit* \$1 UNLIMITED \$1   
La cantidad máxima de conexiones a la base de datos que el usuario puede tener abiertas al mismo tiempo. Este límite no se aplica a los superusuarios. Use la palabra clave UNLIMITED para permitir la cantidad máxima de conexiones simultáneas. También puede aplicar un límite en la cantidad de conexiones de cada base de datos. Para obtener más información, consulte [CREATE DATABASE](r_CREATE_DATABASE.md). El valor predeterminado es UNLIMITED. Para ver las conexiones actuales, consulte la vista del sistema [STV\$1SESSIONS](r_STV_SESSIONS.md).  
Si se aplican los límites de conexión tanto para usuarios como para bases de datos, debe haber una ranura de conexión sin utilizar disponible dentro de ambos límites cuando un usuario intenta conectarse.

SESSION TIMEOUT *limit*  
El tiempo máximo en segundos durante el cual una sesión permanece inactiva o en reposo. El rango es de 60 segundos (un minuto) a 1 728 000 segundos (20 días). Si no se establece el tiempo de espera de la sesión para el usuario, se aplica el ajuste del clúster. Para obtener más información, consulte [Cuotas y límites de Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html) en la *Guía de administración de Amazon Redshift*.  
Cuando se establece el tiempo de espera de la sesión, se aplica solo a las sesiones nuevas.  
Para ver información sobre las sesiones de usuario activas, incluidos la hora de inicio, el nombre de usuario y el tiempo de espera de la sesión, consulte la vista de sistema [STV\$1SESSIONS](r_STV_SESSIONS.md). Para ver información sobre el historial de sesiones del usuario, consulte la vista [STL\$1SESSIONS](r_STL_SESSIONS.md). Para recuperar información acerca de los usuarios de las bases de datos, incluidos los valores de tiempo de espera de la sesión, consulte la vista [SVL\$1USER\$1INFO](r_SVL_USER_INFO.md).

EXTERNALID *external\$1id*  
El identificador del usuario, que está asociado a un proveedor de identidades. El usuario debe tener desactivada la contraseña. Para obtener más información, consulte [Federación de proveedores de identidades (IdP) nativos para Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-native-idp.html).

### Notas de uso
<a name="create_user-usage-notes"></a>

Por defecto, todos los usuarios tienen privilegios CREATE y USAGE en el esquema PUBLIC. Para no permitirles a los usuarios crear objetos en el esquema PUBLIC de una base de datos, use el comando REVOKE para eliminar ese privilegio.

Cuando use la autenticación de IAM para crear credenciales de usuario de la base de datos, tal vez le convenga crear un superusuario que solo pueda iniciar sesión con credenciales temporales. Puede deshabilitar la contraseña de un superusuario, pero no puede crear una contraseña desconocida mediante una cadena hash MD5 generada aleatoriamente.

```
create user iam_superuser password 'md5A1234567890123456780123456789012' createuser;
```

El caso de un *nombre de usuario* entre comillas dobles se conserva siempre, independientemente del valor de la opción de configuración `enable_case_sensitive_identifier`. Para obtener más información, consulte [enable\$1case\$1sensitive\$1identifier](r_enable_case_sensitive_identifier.md).

## Ejemplos
<a name="r_CREATE_USER-examples"></a>

El siguiente comando crea un usuario denominado dbuser con la contraseña “abcD1234”, privilegios de creación de base de datos y un límite de conexión de 30.

```
create user dbuser with password 'abcD1234' createdb connection limit 30;
```

 Consulte la tabla de catálogos PG\$1USER\$1INFO para ver detalles de un usuario de la base de datos. 

```
select * from pg_user_info;
         
 usename   | usesysid | usecreatedb | usesuper | usecatupd | passwd   | valuntil | useconfig | useconnlimit
-----------+----------+-------------+----------+-----------+----------+----------+-----------+-------------
 rdsdb     |        1 | true        | true     | true      | ******** | infinity |           |
 adminuser |      100 | true        | true     | false     | ******** |          |           | UNLIMITED
 dbuser    |      102 | true        | false    | false     | ******** |          |           | 30
```

En el siguiente ejemplo, la contraseña de la cuenta es válida hasta el 10 de junio de 2017.

```
create user dbuser with password 'abcD1234' valid until '2017-06-10';
```

 En el siguiente ejemplo, se crea un usuario con una contraseña que distingue entre mayúsculas y minúsculas que contiene caracteres especiales.

```
create user newman with password '@AbC4321!';
```

 Para usar una barra oblicua inversa ("\$1") en la contraseña MD5, encierre la barra oblicua inversa con una barra oblicua inversa en la cadena de origen. En el siguiente ejemplo, se crea un usuario denominado `slashpass` con una barra oblicua inversa ("`\`") como la contraseña. 

```
select md5('\\'||'slashpass');
         
md5
--------------------------------
0c983d1a624280812631c5389e60d48c
```

Cree un usuario con la contraseña md5.

```
create user slashpass password 'md50c983d1a624280812631c5389e60d48c';
```

En el siguiente ejemplo, se crea un usuario denominado `dbuser` con un tiempo de espera para las sesiones inactivas establecido en 120 segundos.

```
CREATE USER dbuser password 'abcD1234' SESSION TIMEOUT 120;
```

El siguiente ejemplo crea una usuario denominado `bob`. El espacio de nombres es `myco_aad`. Solo es un ejemplo. Para ejecutar el comando correctamente, debe tener un proveedor de identidades registrado. Para obtener más información, consulte [Federación de proveedores de identidades nativos (IdP) para Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-native-idp.html).

```
CREATE USER myco_aad:bob EXTERNALID "ABC123" PASSWORD DISABLE;
```