CREA UTENTE - 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à.

CREA UTENTE

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 richiesti 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. WITH viene 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, specifica 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, consultare la sezione relativa all'utilizzo dell'autenticazione IAM per generare le credenziali dell'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.

Puoi specificare la password in chiaro, come una stringa di hash MD5 o come una stringa di hash SHA256.

Nota

Quando avvii un nuovo cluster utilizzando l'API o Amazon Redshift AWS Management Console AWS CLI, 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 carattere ASCII (codice ASCII da 33 a 126) tranne ' (virgolette singole), " (virgolette doppie), \, / o @.

Come alternativa più sicura al passaggio del parametro della password CREATE USER come testo in chiaro, puoi specificare un hash MD5 di una stringa che includa la password e il nome utente.

Nota

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

Per specificare una password MD5, attenersi alla seguente procedura:

  1. Concatenare la password e il nome utente.

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

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

    select md5('ez' || 'user1'); md5 -------------------------------- 153c434b4b77c89e6b94f12c5393af5b
  3. Concatenare 'md5' davanti alla stringa di hash MD5 e fornire la stringa concatenata come argomento 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 è quella di specificare un hash SHA-256 di una stringa di password; oppure è possibile fornire il proprio digest SHA-256 valido e il sale a 256 bit utilizzati 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 SHA-256 valido e un salt a 256 bit utilizzati 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. Usa la funzione FROM_HEX per convertire il tuo salt in binario. Questa conversione è necessaria perché la funzione SHA2 richiede la rappresentazione binaria del salt. Vedi la seguente istruzione.

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

    SELECT CONCAT('Mypassword1',FROM_HEX('c721bff5d9042cf541ff7b9d48fa8a6e545c19a763e3710151f9513038b0f6c6'));
  4. Usa la funzione SHA2 per creare un digest 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 si imposta una password in testo normale senza specificare la funzione di hashing, viene generato un digest MD5 utilizzando il nome utente come salt.

CREATEDB | NOCREATEDB

L'opzione CREATEDB consente al nuovo utente di creare database. Il valore predefinito è NOCREATEDB.

CREATEUSER | NOCREATEUSER

L'opzione CREATEUSER crea un utente con privilegi avanzati con tutti i privilegi del database, incluso 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'autorizzazione SYSLOG ACCESS RESTRICTED possono vedere solo le righe generate da quell'utente nelle tabelle e nelle viste di sistema visibili all'utente. Il valore predefinito è RESTRICTED.

Gli utenti normali che dispongono dell'autorizzazione SYSLOG ACCESS UNRESTRICTED possono visualizzare tutte le righe nelle tabelle e nelle viste di sistema visibili all'utente, incluse le righe generate da un altro utente. UNRESTRICTED non fornisce un accesso regolare all'utente alle tabelle visibili agli utenti con privilegi avanzati. 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 delle istruzioni INSERT, UPDATE e DELETE, che potrebbero contenere dati sensibili generati dall'utente.

Tutte le righe in SVV_TRANSACTIONS sono visibili per tutti gli utenti.

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

IN GROUP groupname

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

VALID UNTIL abstime

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

CONNECTION LIMIT { limit | UNLIMITED }

Numero massimo di connessioni di database che l'utente può aprire contemporaneamente. Il limite non viene applicato per gli utente con privilegi avanzati. Utilizza la parola chiave UNLIMITED 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. Il valore predefinito è 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.

SESSION TIMEOUT limite

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.

EXTERNALID external_id

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 hanno i privilegi CREATE e USAGE nello schema PUBLIC. Per impedire agli utenti di creare oggetti nello schema PUBLIC di un database, utilizza il comando REVOKE per rimuovere tale privilegio.

Quando si utilizza l'autenticazione IAM per creare credenziali utente del database, puoi creare un utente con privilegi avanzati in grado di accedere solo utilizzando credenziali temporanee. Non puoi disabilitare la password di un utente con privilegi avanzati, ma puoi creare una password sconosciuta utilizzando una stringa di hash MD5 generata in modo casuale.

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;

Eseguire una query sulla tabella di catalogo PG_USER_INFO 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 utilizzare una barra rovesciata ('\') nella tua password MD5, specifica il carattere di escape per la barra rovesciata con una barra rovesciata nella stringa di origine. 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;