CREAR USUARIO - Amazon Redshift

CREAR USUARIO

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

Los siguientes privilegios son necesarios para CREATE USER:

  • Superusuario

  • Usuarios con el privilegio CREATE USER

Sintaxis

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

Parámetros

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.

WITH

Palabra clave opcional. Amazon Redshift ignora la palabra WITH.

PASSWORD { 'password' | 'md5hash' | 'sha256hash' | DISABLE }

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

nota

Cuando lanza un clúster nuevo a través de la AWS Management Console, 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.

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), \, / 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.

nota

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.

  2. 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 de Amazon Redshift y el operador de concatenación (||) para devolver una cadena hash MD5 de 32 caracteres.

    select md5('ez' || 'user1'); md5 -------------------------------- 153c434b4b77c89e6b94f12c5393af5b
  3. Concatene "md5" delante de la cadena hash MD5 y proporcione la cadena concatenada como argumento md5hash.

    create user user1 password 'md5153c434b4b77c89e6b94f12c5393af5b';
  4. 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.

  2. Utilice la función FROM_HEX 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');
  3. 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'));
  4. 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);
  5. 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';
  6. 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 | NOCREATEDB

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

CREATEUSER | 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 superuser.

SYSLOG ACCESS { RESTRICTED | UNRESTRICTED }

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.

nota

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_QUERY y STL_QUERYTEXT 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_TRANSACTIONS son visibles para todos los usuarios.

Para obtener más información, consulte Visibilidad de datos en las tablas y vistas de sistema.

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 { limit | UNLIMITED }

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. El valor predeterminado es UNLIMITED. Para ver las conexiones actuales, consulte la vista del sistema STV_SESSIONS.

nota

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 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_SESSIONS. Para ver información sobre el historial de sesiones del usuario, consulte la vista STL_SESSIONS. 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_USER_INFO.

EXTERNALID external_id

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.

Notas de uso

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_case_sensitive_identifier.

Ejemplos

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_USER_INFO 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 ("\") 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 (IdP) nativos para Amazon Redshift.

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