CREATE USER - Amazon Redshift

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

CREATE USER

Crea un nuovo utente del database. Gli utenti del database possono recuperare dati, eseguire comandi ed eseguire altre operazioni in un database, a seconda dei loro privilegi e ruoli. Per eseguire questo comando, è necessario essere un utente con privilegi avanzati del database.

Privilegi richiesti

Di seguito sono riportati i privilegi necessari per: CREATE USER

  • Superuser

  • Utenti con il privilegio CREATE USER

Sintassi

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

Parametri

name

Il nome dell'utente da creare. Il nome utente non può essere PUBLIC. Per ulteriori informazioni sui nomi validi, consultare Nomi e identificatori.

WITH

Parola chiave facoltativa. WITHviene ignorato da Amazon Redshift

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

Imposta la password dell'utente.

Per impostazione predefinita, gli utenti possono modificare le proprie password, a meno che la password non sia disabilitata. Per disabilitare la password di un utente, specificare. DISABLE Quando la password di un utente è disabilitata, la password viene eliminata dal sistema e l'utente può accedere solo utilizzando credenziali utente temporanee AWS Identity and Access Management (IAM). Per ulteriori informazioni, vedere Utilizzo dell'IAMautenticazione per generare credenziali utente del database. Solo un utente con privilegi avanzati può abilitare o disabilitare le password. Non puoi disabilitare la password di un utente con privilegi avanzati. Per abilitare una password, esegui ALTER USER e specifica una password.

È possibile specificare la password in testo non crittografato, come stringa MD5 hash o come stringa SHA256 hash.

Nota

Quando avvii un nuovo cluster utilizzando Amazon Redshift AWS Management Console AWS CLI API, devi fornire una password di testo non crittografato per l'utente iniziale del database. Puoi modificare la password successivamente utilizzando ALTER USER.

Per il testo in chiaro, la password deve soddisfare i seguenti vincoli:

  • La lunghezza deve essere compresa tra 8 e 64 caratteri.

  • Deve contenere almeno una lettera maiuscola, una lettera minuscola e un numero.

  • Può utilizzare qualsiasi ASCII carattere con i ASCII codici 33—126, tranne '(virgolette singole), "(virgolette doppie),\,/o @.

Come alternativa più sicura al passaggio del parametro CREATE USER password come testo non crittografato, è possibile specificare un MD5 hash di una stringa che include la password e il nome utente.

Nota

Quando specificate una stringa MD5 hash, il CREATE USER comando verifica la presenza di una stringa MD5 hash valida, ma non convalida la parte della stringa relativa alla password. In questo caso è possibile creare una password, ad esempio una stringa vuota, che non puoi utilizzare per accedere al database.

Per specificare una MD5 password, procedi nel seguente modo:

  1. Concatenare la password e il nome utente.

    Ad esempio, per la password ez e l'utente user1, la stringa concatenata è ezuser1.

  2. Converti la stringa concatenata in una stringa hash di 32 MD5 caratteri. È possibile utilizzare qualsiasi MD5 utilità per creare la stringa hash. L'esempio seguente utilizza Amazon Redshift MD5funzione e l'operatore di concatenazione (||) per restituire una stringa hash di 32 caratteri. MD5

    select md5('ez' || 'user1'); md5 -------------------------------- 153c434b4b77c89e6b94f12c5393af5b
  3. Concatena 'md5' davanti alla stringa hash e fornisci la stringa concatenata come argomento MD5 md5hash.

    create user user1 password 'md5153c434b4b77c89e6b94f12c5393af5b';
  4. Accedi al database utilizzando le credenziali di accesso.

    Per questo esempio, accedere come user1 con la password ez.

Un'altra alternativa sicura consiste nello specificare un hash SHA -256 di una stringa di password; in alternativa, è possibile fornire un digest SHA -256 valido e un codice salt a 256 bit utilizzato per creare il digest.

  • Digest — L'output di una funzione di hashing.

  • Salt - Dati generati casualmente combinati con la password per ridurre i pattern nell'output della funzione di hashing.

'sha256|Mypassword'
'sha256|digest|256-bit-salt'

Nell'esempio seguente, Amazon Redshift genera e gestisce il salt.

CREATE USER admin PASSWORD 'sha256|Mypassword1';

Nell'esempio seguente, vengono forniti un digest valido a SHA -256 bit e un sale a 256 bit utilizzato per creare il digest.

Per specificare una password e impostarne l'hash con il tuo salt, segui questi passaggi:

  1. Crea un salt a 256 bit. È possibile ottenere un salt utilizzando qualsiasi generatore di stringhe esadecimali che restituisce una stringa lunga 64 caratteri. In questo esempio, il salt è c721bff5d9042cf541ff7b9d48fa8a6e545c19a763e3710151f9513038b0f6c6.

  2. Utilizzate la HEX funzione FROM _ per convertire il sale in binario. Questo perché la SHA2 funzione richiede la rappresentazione binaria del sale. Vedi la seguente istruzione.

    SELECT FROM_HEX('c721bff5d9042cf541ff7b9d48fa8a6e545c19a763e3710151f9513038b0f6c6');
  3. Usa la CONCAT funzione per aggiungere il tuo salt alla tua password. In questo esempio, la password è Mypassword1. Vedi la seguente istruzione.

    SELECT CONCAT('Mypassword1',FROM_HEX('c721bff5d9042cf541ff7b9d48fa8a6e545c19a763e3710151f9513038b0f6c6'));
  4. Usa la SHA2 funzione per creare un riassunto dalla combinazione di password e salt. Vedi la seguente istruzione.

    SELECT SHA2(CONCAT('Mypassword1',FROM_HEX('c721bff5d9042cf541ff7b9d48fa8a6e545c19a763e3710151f9513038b0f6c6')), 0);
  5. Crea l'utente utilizzando il digest e il salt dei passaggi precedenti. Vedi la seguente istruzione.

    CREATE USER admin PASSWORD 'sha256|821708135fcc42eb3afda85286dee0ed15c2c461d000291609f77eb113073ec2|c721bff5d9042cf541ff7b9d48fa8a6e545c19a763e3710151f9513038b0f6c6';
  6. Accedi al database utilizzando le credenziali di accesso.

    Per questo esempio, accedere come admin con la password Mypassword1.

Se imposti una password in testo semplice senza specificare la funzione di hashing, viene generato un MD5 digest utilizzando il nome utente come sale.

CREATEDB | NOCREATEDB

L'CREATEDBopzione consente al nuovo utente di creare database. L'impostazione predefinita èNOCREATEDB.

CREATEUSER | NOCREATEUSER

L'CREATEUSERopzione crea un superutente con tutti i privilegi del database, inclusi. CREATE USER L'impostazione predefinita è. NOCREATEUSER Per ulteriori informazioni, consulta superuser.

SYSLOG ACCESS { RESTRICTED | UNRESTRICTED }

Una clausola che specifica il livello di accesso che l'utente ha per tabelle e viste di sistema di Amazon Redshift.

Gli utenti normali che dispongono dell'SYSLOGACCESSRESTRICTEDautorizzazione possono visualizzare solo le righe generate da quell'utente nelle tabelle e nelle viste di sistema visibili all'utente. L'impostazione predefinita èRESTRICTED.

Gli utenti normali che dispongono dell'SYSLOGACCESSUNRESTRICTEDautorizzazione possono visualizzare tutte le righe nelle tabelle e nelle viste di sistema visibili all'utente, incluse le righe generate da un altro utente. UNRESTRICTEDnon fornisce a un utente normale l'accesso alle tabelle visibili dai superutenti. Solo gli utenti con privilegi avanzati possono vedere le tabelle visibili agli utenti con privilegi avanzati.

Nota

Concedere all'utente un accesso illimitato alle tabelle di sistema offre all'utente la visibilità dei dati generati da altri utenti. Ad esempio, STL _ QUERY e STL _ QUERYTEXT contengono il testo completo diINSERT, e DELETE le istruzioniUPDATE, che potrebbero contenere dati sensibili generati dall'utente.

Tutte le righe in SVV _ TRANSACTIONS sono visibili a tutti gli utenti.

Per ulteriori informazioni, consulta Visibilità dei dati nelle tabelle e nelle viste di sistema.

IN (nome del GROUP gruppo)

Specifica il nome di un gruppo esistente a cui appartiene l'utente. Possono essere elencati più nomi di gruppi.

VALIDUNTILastimo

L'VALIDUNTILopzione imposta un periodo di tempo assoluto dopo il quale la password dell'utente non è più valida. Per impostazione predefinita, la password non ha limiti di tempo.

CONNECTIONLIMIT{limite |UNLIMITED}

Numero massimo di connessioni di database che l'utente può aprire contemporaneamente. Il limite non viene applicato per gli utente con privilegi avanzati. Usa la UNLIMITED parola chiave per consentire il numero massimo di connessioni simultanee. È possibile che venga applicato anche un limite al numero di connessioni per ciascun database. Per ulteriori informazioni, consulta CREATE DATABASE. L'impostazione predefinita èUNLIMITED. Per visualizzare le connessioni correnti, eseguire una query sulla vista di sistema STV_SESSIONS.

Nota

Se si applicano entrambi i limiti di connessione utente e database, deve essere disponibile uno slot di connessione inutilizzato che rientra in entrambi i limiti quando un utente tenta di connettersi.

SESSIONTIMEOUTlimite

Il tempo massimo (in secondi) in cui una sessione rimane inattiva o inutilizzata. L'intervallo è compreso tra 60 secondi (un minuto) e 1.728.000 secondi (20 giorni). Se per l'utente non è impostato alcun timeout di sessione, verrà applicata l'impostazione del cluster. Per ulteriori informazioni, consulta Quote e limiti in Amazon Redshift nella Guida alla gestione di Amazon Redshift.

Quando si imposta il timeout della sessione, viene applicato solo alle nuove sessioni.

Per visualizzare informazioni sulle sessioni utente attive, tra cui l'ora di inizio, il nome utente e il timeout della sessione, eseguire una query sulla vista di sistema STV_SESSIONS. Per visualizzare le informazioni sulla cronologia delle sessioni utente, eseguire una query sulla vista STL_SESSIONS. Per recuperare informazioni sugli utenti del database, inclusi i valori di timeout della sessione, eseguire una query sulla vista SVL_USER_INFO.

EXTERNALIDid_esterno

L'identificativo dell'utente, associato a un provider di identità. L'utente deve avere la password disabilitata. Per ulteriori informazioni, consulta Native identity provider (IdP) federation for Amazon Redshift (Federazione di provider di identità nativi (IdP) per Amazon Redshift).

Note per l'utilizzo

Per impostazione predefinita, tutti gli utenti dispongono di USAGE privilegi CREATE e sullo schema. PUBLIC Per impedire agli utenti di creare oggetti nello PUBLIC schema di un database, utilizzate il REVOKE comando per rimuovere tale privilegio.

Quando si utilizza IAM l'autenticazione per creare le credenziali utente del database, è possibile creare un utente avanzato in grado di accedere solo utilizzando credenziali temporanee. Non è possibile disabilitare la password di un superutente, ma è possibile creare una password sconosciuta utilizzando una stringa hash generata casualmente. MD5

create user iam_superuser password 'md5A1234567890123456780123456789012' createuser;

Il caso di un nome utente racchiuso tra virgolette doppie è sempre conservato indipendentemente dall'impostazione dell'opzione di configurazione enable_case_sensitive_identifier. Per ulteriori informazioni, consulta enable_case_sensitive_identifier.

Esempi

Il seguente comando crea un utente denominato dbuser, con la password "abcD1234", i privilegi di creazione del database e un limite di connessione di 30.

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

Interroga la tabella del INFO catalogo PG_ USER _ per visualizzare i dettagli su un utente del database.

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

Nell'esempio seguente, la password dell'account è valida fino al 10 giugno 2017.

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

L'esempio seguente crea un utente con una password che rispetta la distinzione tra lettere maiuscole e minuscole che contiene caratteri speciali.

create user newman with password '@AbC4321!';

Per usare una barra rovesciata ('\') nella MD5 password, evita la barra rovesciata inserendo una barra rovesciata nella stringa sorgente. Nell'esempio seguente viene creato un utente denominato slashpass con una singola barra rovesciata ('\') come password.

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

Creazione di un utente con la password md5.

create user slashpass password 'md50c983d1a624280812631c5389e60d48c';

Nell'esempio seguente viene creato un utente denominato dbuser con un timeout di sessione inattiva impostato su 120 secondi.

CREATE USER dbuser password 'abcD1234' SESSION TIMEOUT 120;

L'esempio seguente crea un utente denominato bob. Lo spazio dei nomi è myco_aad. Si tratta solo di un esempio, Per eseguire correttamente il comando, è necessario disporre di un provider di identità registrato. Per ulteriori informazioni, consulta Native identity provider (IdP) federation for Amazon Redshift (Federazione di provider di identità nativi (IdP) per Amazon Redshift).

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