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à.
Note per l'utilizzo
Per concedere i privilegi su un oggetto, è necessario soddisfare uno dei seguenti criteri:
-
Essere il proprietario dell'oggetto.
-
Essere un utente con privilegi avanzati.
-
Avere un privilegio di concessione per l'oggetto e il privilegio.
Ad esempio, il comando seguente consente all'utente HR sia di eseguire SELECT comandi sulla tabella dei dipendenti sia di concedere e revocare lo stesso privilegio ad altri utenti.
grant select on table employees to HR with grant option;
HR non può concedere privilegi per alcuna operazione diversa SELECT o su qualsiasi tabella diversa dai dipendenti.
Come altro esempio, il comando seguente consente all'utente HR sia di eseguire ALTER comandi sulla tabella dei dipendenti sia di concedere e revocare lo stesso privilegio ad altri utenti.
grant ALTER on table employees to HR with grant option;
HR non può concedere privilegi per alcuna operazione diversa ALTER o su qualsiasi tabella diversa dai dipendenti.
Avere i privilegi su una vista non implica i privilegi sulle tabelle sottostanti. Allo stesso modo, avere i privilegi su uno schema non implica i privilegi sulle tabelle dello schema. Invece, è necessario concedere l'accesso alle tabelle sottostanti in modo esplicito.
Per concedere i privilegi a una AWS Lake Formation tabella, il IAM ruolo associato allo schema esterno della tabella deve disporre dell'autorizzazione a concedere i privilegi alla tabella esterna. L'esempio seguente crea uno schema esterno con un ruolo associatoIAM. myGrantor
Il IAM ruolo myGrantor
è autorizzato a concedere autorizzazioni ad altri. Il GRANT comando utilizza l'autorizzazione del IAM ruolo myGrantor
associato allo schema esterno per concedere l'autorizzazione al IAM ruolomyGrantee
.
create external schema mySchema from data catalog database 'spectrum_db' iam_role 'arn:aws:iam::123456789012:role/myGrantor' create external database if not exists;
grant select on external table mySchema.mytable to iam_role 'arn:aws:iam::123456789012:role/myGrantee';
Se GRANT ALL disponi dei privilegi per un IAM ruolo, i privilegi individuali vengono concessi nel relativo Data Catalog abilitato per Lake Formation. Ad esempio, quanto segue GRANT ALL comporta la visualizzazione dei privilegi individuali concessi (SELECTALTER,DROP,DELETE, eINSERT) nella console Lake Formation.
grant all on external table mySchema.mytable to iam_role 'arn:aws:iam::123456789012:role/myGrantee';
Gli utenti avanzati possono accedere a tutti gli oggetti indipendentemente dai REVOKE comandi che impostano GRANT i privilegi degli oggetti.
Note di utilizzo per il controllo degli accessi a livello di colonna
Le seguenti note di utilizzo si applicano ai privilegi a livello di colonna su tabelle e viste di Amazon Redshift. Queste note descrivono le tabelle; le stesse note si applicano alle viste a meno che non si noti esplicitamente un'eccezione.
Per una tabella Amazon Redshift, puoi concedere solo UPDATE i privilegi SELECT e a livello di colonna. Per una visualizzazione di Amazon Redshift, puoi concedere solo il SELECT privilegio a livello di colonna.
La ALL parola chiave è sinonimo di SELECT e di UPDATE privilegi combinati quando viene utilizzata nel contesto di un livello di colonna GRANT su una tabella.
-
Se non si dispone del SELECT privilegio su tutte le colonne di una tabella, l'esecuzione di un'operazione SELECT * restituisce solo le colonne a cui si ha accesso. Quando si utilizza una vista, un'SELECToperazione* tenta di accedere a tutte le colonne della vista. Se non si dispone dell'autorizzazione per accedere a tutte le colonne, queste query hanno esito negativo e viene visualizzato un errore di autorizzazione negata.
SELECT* non si espande solo alle colonne accessibili nei seguenti casi:
Non puoi creare una visualizzazione normale con solo colonne accessibili SELECT utilizzando*.
Non è possibile creare una vista materializzata con solo colonne accessibili SELECT utilizzando*.
Se SELECT disponi di un UPDATE privilegio su una tabella o una vista e aggiungi una colonna, hai comunque gli stessi privilegi sulla tabella o sulla vista e quindi su tutte le relative colonne.
Solo il proprietario di una tabella o un utente con privilegi avanzati possono concedere privilegi a livello di colonna.
La WITH GRANT OPTION clausola non è supportata per i privilegi a livello di colonna.
Non è possibile mantenere lo stesso privilegio sia a livello di tabella sia a livello di colonna. Ad esempio, l'utente non
data_scientist
può avere sia il SELECT privilegio sulla tabellaemployee
che il privilegio sulla colonna. SELECTemployee.department
Considerare i seguenti risultati quando si concede lo stesso privilegio a una tabella e a una colonna all'interno della tabella:-
Se un utente dispone di un privilegio a livello di tabella su una tabella, la concessione dello stesso privilegio a livello di colonna non ha alcun effetto.
-
Se un utente dispone di un privilegio a livello di tabella in una tabella, la revoca dello stesso privilegio per una o più colonne della tabella restituisce un errore. Al contrario, revoca il privilegio a livello di tabella.
-
Se un utente dispone di un privilegio a livello di colonna, la concessione dello stesso privilegio a livello di tabella restituisce un errore.
-
Se un utente dispone di un privilegio a livello di colonna, la revoca dello stesso privilegio a livello di tabella revoca sia i privilegi di colonna sia di tabella per tutte le colonne della tabella.
-
Non è possibile concedere privilegi a livello di colonna nelle viste con associazione tardiva.
Per creare una vista materializzata, è necessario disporre dei SELECT privilegi a livello di tabella sulle tabelle di base. Anche se si dispone di privilegi a livello di colonna su colonne specifiche, non è possibile creare una vista materializzata solo su tali colonne. Tuttavia, è possibile concedere SELECT privilegi alle colonne di una vista materializzata, in modo simile alle viste normali.
Per cercare le concessioni di privilegi a livello di colonna, usa la vista PG_ _. ATTRIBUTE INFO
Note d'uso per la concessione dell'autorizzazione ASSUMEROLE
Le seguenti note d'uso si applicano alla concessione dell'ASSUMEROLEautorizzazione in Amazon Redshift.
Utilizzi l'ASSUMEROLEautorizzazione per controllare le autorizzazioni di accesso ai IAM ruoli per utenti, ruoli o gruppi del database su comandi comeCOPY,UNLOAD, EXTERNAL FUNCTION o. CREATE MODEL Dopo aver concesso l'ASSUMEROLEautorizzazione a un utente, ruolo o gruppo per un IAM ruolo, l'utente, il ruolo o il gruppo può assumere tale ruolo durante l'esecuzione del comando. L'ASSUMEROLEautorizzazione consente di concedere l'accesso ai comandi appropriati in base alle esigenze.
Solo un utente avanzato del database può concedere o revocare l'ASSUMEROLEautorizzazione per utenti, ruoli e gruppi. Un superutente conserva sempre l'autorizzazione. ASSUMEROLE
Per abilitare l'uso dell'ASSUMEROLEautorizzazione per utenti, ruoli e gruppi, un utente avanzato esegue le due azioni seguenti:
Esegue l'istruzione di seguito una volta nel cluster:
revoke assumerole on all from public for all;
Concedi l'ASSUMEROLEautorizzazione a utenti, ruoli e gruppi per i comandi appropriati.
È possibile specificare il concatenamento dei ruoli nella clausola ON quando si concede l'autorizzazione. ASSUMEROLE Per separare i ruoli in una catena di ruoli è possibile utilizzare le virgole, ad esempio Role1,Role2,Role3
. Se al momento della concessione dell'ASSUMEROLEautorizzazione è stato specificato il concatenamento dei ruoli, è necessario specificare il concatenamento di ruoli quando si eseguono le operazioni concesse dall'autorizzazione. ASSUMEROLE Non è possibile specificare singoli ruoli all'interno della catena di ruoli quando si eseguono operazioni concesse dall'ASSUMEROLEautorizzazione. Ad esempio, se a un utente, un ruolo o un gruppo viene concessa la catena di ruoli Role1,Role2,Role3
, non è possibile specificare solo Role1
per eseguire le operazioni.
Se un utente tenta di eseguire un'CREATEMODELoperazione COPYUNLOAD, EXTERNALFUNCTION, o e non gli è stata concessa l'ASSUMEROLEautorizzazione, viene visualizzato un messaggio simile al seguente.
ERROR: User awsuser does not have ASSUMEROLE permission on IAM role "arn:aws:iam::123456789012:role/RoleA" for COPY
Per elencare gli utenti a cui è stato concesso l'accesso a IAM ruoli e comandi tramite l'ASSUMEROLEautorizzazione, vedereHAS_ASSUMEROLE_PRIVILEGE. Per elencare IAM i ruoli e le autorizzazioni di comando concesse a un utente specificato, vederePG_ _ _ _BY_ GET IAM ROLE USER. Per elencare utenti, ruoli e gruppi a cui è stato concesso l'accesso a un IAM ruolo specificato, vederePG_ _ _BY_ _ GET GRANTEE IAM ROLE.
Note di utilizzo per la concessione delle autorizzazioni di machine learning
Non è possibile concedere o revocare direttamente le autorizzazioni relative a una funzione ML. Una funzione ML appartiene a un modello ML e le autorizzazioni sono controllate tramite il modello. È invece possibile concedere le autorizzazioni relative al modello ML. L'esempio seguente dimostra come concedere le autorizzazioni a tutti gli utenti per eseguire la funzione ML associata al modello customer_churn
.
GRANT EXECUTE ON MODEL customer_churn TO PUBLIC;
È inoltre possibile concedere tutte le autorizzazioni a un utente per il modello customer_churn
ML.
GRANT ALL on MODEL customer_churn TO ml_user;
La concessione dell'autorizzazione EXECUTE
relativa a una funzione ML avrà esito negativo se nello schema è presente una funzione ML, anche se tale funzione ML dispone già dell'autorizzazione EXECUTE
tramite GRANT EXECUTE ON MODEL
. Si consiglia di utilizzare uno schema separato quando si utilizza il comando CREATE MODEL
per mantenere le funzioni ML in uno schema separato. L'esempio seguente mostra come fare.
CREATE MODEL ml_schema.customer_churn FROM customer_data TARGET churn FUNCTION ml_schema.customer_churn_prediction IAM_ROLE default SETTINGS ( S3_BUCKET 'amzn-s3-demo-bucket' );