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

GRANT

Definisce le autorizzazioni di accesso per un utente o un ruolo.

Le autorizzazioni includono opzioni di accesso come la possibilità di leggere i dati in tabelle e viste, scrivere dati, creare ed eliminare tabelle. Utilizza questo comando per assegnare autorizzazioni specifiche per una tabella, un database, uno schema, una funzione, una procedura, una lingua o una colonna. Per revocare le autorizzazioni da un oggetto di database, utilizzare il comando REVOKE.

Le autorizzazioni includono anche le seguenti opzioni di accesso producer dell'unità di condivisione dati:

  • Assegnazione dell'accesso dell'unità di condivisione dati agli spazi dei nomi e agli account consumer.

  • Assegnazione dell'autorizzazione a modificare un'unità di condivisione dati aggiungendo o rimuovendo oggetti dell'unità di condivisione dati.

  • Assegnazione dell'autorizzazione a condividere un'unità di condivisione dati aggiungendo o rimuovendo spazi dei nomi consumer dell'unità di condivisione dati.

Le opzioni di accesso consumer dell'unità di condivisione dati sono le seguenti:

  • Assegnazione dell'accesso completo degli utenti ai database creati da un'unità di condivisione dati o a schemi esterni che fanno riferimento a tali database.

  • Assegnazione delle autorizzazioni degli utenti a livello di oggetto per i database creati da un'unità di condivisione dati, come avviene per gli oggetti di database locali. Per assegnare questo livello di autorizzazione, è necessario utilizzare la clausola WITH PERMISSIONS durante la creazione di un database dall'unità di condivisione dati. Per ulteriori informazioni, consulta CREATE DATABASE.

Per ulteriori informazioni sulle autorizzazioni dell'unità di condivisione dati, consulta Condivisione di unità di condivisione dati.

È anche possibile assegnare ruoli per gestire le autorizzazioni del database e controllare cosa possono fare gli utenti in relazione ai propri dati. Definendo i ruoli e assegnando ruoli agli utenti, è possibile limitare le operazioni che tali utenti possono intraprendere, ad esempio limitando gli utenti ai soli comandi CREATE TABLE e INSERT. Per ulteriori informazioni sul comando CREATE ROLE, consulta CREATE ROLE. Amazon Redshift ha alcuni ruoli definiti dal sistema che è possibile utilizzare anche per concedere autorizzazioni specifiche ai propri utenti. Per ulteriori informazioni, consulta Ruoli definiti dal sistema di Amazon Redshift.

Per quanto riguarda e autorizzazioni, è possibile solo GRANT o REVOKE USAGE in uno schema esterno per gli utenti di database e gruppi di utenti che utilizzano la sintassi ON SCHEMA. Quando si utilizza ON EXTERNAL SCHEMA con AWS Lake Formation, è possibile concedere e revocare solo le autorizzazioni a un ruolo (IAM). AWS Identity and Access Management Per un elenco delle autorizzazioni richieste, consulta la sintassi.

Per le procedure archiviate, l'unica autorizzazione che si può concedere è EXECUTE.

Non è possibile eseguire GRANT (su una risorsa esterna) all'interno di un blocco di transazione (BEGIN ... END). Per ulteriori informazioni sulle transazioni, consultare Isolamento serializzabile.

Per vedere quali autorizzazioni sono state concesse agli utenti per un database, usa HAS_DATABASE_PRIVILEGE. Per vedere quali autorizzazioni sono state concesse agli utenti per uno schema, usa PRIVILEGIO DELLO SCHEMA HAS. Per vedere quali autorizzazioni sono state concesse agli utenti per una tabella, usa HAS_TABLE_PRIVILEGE.

Sintassi

GRANT { { SELECT | INSERT | UPDATE | DELETE | DROP | REFERENCES | ALTER | TRUNCATE } [,...] | ALL [ PRIVILEGES ] } ON { [ TABLE ] table_name [, ...] | ALL TABLES IN SCHEMA schema_name [, ...] } TO { username [ WITH GRANT OPTION ] | ROLE role_name | GROUP group_name | PUBLIC } [, ...] GRANT { { CREATE | TEMPORARY | TEMP | ALTER } [,...] | ALL [ PRIVILEGES ] } ON DATABASE db_name [, ...] TO { username [ WITH GRANT OPTION ] | ROLE role_name | GROUP group_name | PUBLIC } [, ...] GRANT { { CREATE | USAGE | ALTER } [,...] | ALL [ PRIVILEGES ] } ON SCHEMA schema_name [, ...] TO { username [ WITH GRANT OPTION ] | ROLE role_name | GROUP group_name | PUBLIC } [, ...] GRANT { EXECUTE | ALL [ PRIVILEGES ] } ON { FUNCTION function_name ( [ [ argname ] argtype [, ...] ] ) [, ...] | ALL FUNCTIONS IN SCHEMA schema_name [, ...] } TO { username [ WITH GRANT OPTION ] | ROLE role_name | GROUP group_name | PUBLIC } [, ...] GRANT { EXECUTE | ALL [ PRIVILEGES ] } ON { PROCEDURE procedure_name ( [ [ argname ] argtype [, ...] ] ) [, ...] | ALL PROCEDURES IN SCHEMA schema_name [, ...] } TO { username [ WITH GRANT OPTION ] | ROLE role_name | GROUP group_name | PUBLIC } [, ...] GRANT USAGE ON LANGUAGE language_name [, ...] TO { username [ WITH GRANT OPTION ] | ROLE role_name | GROUP group_name | PUBLIC } [, ...]

Di seguito è riportata la sintassi per le autorizzazioni a livello di colonna su tabelle e viste di Amazon Redshift.

GRANT { { SELECT | UPDATE } ( column_name [, ...] ) [, ...] | ALL [ PRIVILEGES ] ( column_name [,...] ) } ON { [ TABLE ] table_name [, ...] } TO { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...]

Di seguito è riportata la sintassi per le autorizzazioni ASSUMEROLE concesse a utenti e gruppi con un ruolo specificato. Per iniziare a utilizzare il privilegio ASSUMEROLE, consultare Note di utilizzo per la concessione dell'autorizzazione ASSUMEROLE.

GRANT ASSUMEROLE ON { 'iam_role' [, ...] | default | ALL } TO { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...] FOR { ALL | COPY | UNLOAD | EXTERNAL FUNCTION | CREATE MODEL } [, ...]

Di seguito è riportata la sintassi per l'integrazione di Redshift Spectrum con Lake Formation.

GRANT { SELECT | ALL [ PRIVILEGES ] } ( column_list ) ON EXTERNAL TABLE schema_name.table_name TO { IAM_ROLE iam_role } [, ...] [ WITH GRANT OPTION ] GRANT { { SELECT | ALTER | DROP | DELETE | INSERT } [, ...] | ALL [ PRIVILEGES ] } ON EXTERNAL TABLE schema_name.table_name [, ...] TO { { IAM_ROLE iam_role } [, ...] | PUBLIC } [ WITH GRANT OPTION ] GRANT { { CREATE | ALTER | DROP } [, ...] | ALL [ PRIVILEGES ] } ON EXTERNAL SCHEMA schema_name [, ...] TO { IAM_ROLE iam_role } [, ...] [ WITH GRANT OPTION ]
Autorizzazioni dell'unità di condivisione dati sul lato producer

Di seguito è riportata la sintassi per l'utilizzo di GRANT per assegnare le autorizzazioni ALTER o SHARE a un utente o un ruolo. L'utente può modificare l'unità di condivisione dati con l'autorizzazione ALTER o assegnare l'utilizzo a un consumer con l'autorizzazione SHARE. ALTER e SHARE sono le uniche autorizzazioni che è possibile assegnare a utenti e gruppi di utenti per un'unità di condivisione dati.

GRANT { ALTER | SHARE } ON DATASHARE datashare_name TO { username [ WITH GRANT OPTION ] | ROLE role_name | GROUP group_name | PUBLIC } [, ...]

Di seguito è riportata la sintassi per l'utilizzo di GRANT per le autorizzazioni per l'utilizzo dell'unità di condivisione dati su Amazon Redshift. Si concede l'accesso a una unità di condivisione dati a un consumer utilizzando l'autorizzazione USAGE. Non è possibile concedere questa autorizzazione agli utenti o ai gruppi di utenti. Questa autorizzazione inoltre non supporta WITH GRANT OPTION per l'istruzione GRANT. Solo gli utenti o i gruppi di utenti con autorizzazione SHARE precedentemente concessa loro PER l'unità di condivisione dati possono eseguire questo tipo di istruzione GRANT.

GRANT USAGE ON DATASHARE datashare_name TO NAMESPACE 'namespaceGUID' | ACCOUNT 'accountnumber' [ VIA DATA CATALOG ]

Di seguito è riportato un esempio di come concedere l'autorizzazione per l'utilizzo di un'unità di condivisione dati a un account Lake Formation.

GRANT USAGE ON DATASHARE salesshare TO ACCOUNT '123456789012' VIA DATA CATALOG;
Autorizzazioni dell'unità di condivisione dati sul lato consumer

Di seguito è riportata la sintassi per le autorizzazioni di utilizzo per la condivisione dei dati GRANT per un database o uno schema specifico creato da una unità di condivisione dati.

Le ulteriori autorizzazioni richieste per l'accesso dei consumer a un database creato da un'unità di condivisione dati variano a seconda che il comando CREATE DATABASE utilizzato per creare il database dall'unità di condivisione dati includa o meno la clausola WITH PERMISSIONS. Per ulteriori informazioni sul comando CREATE DATABASE con la clausola WITH PERMISSIONS, consulta CREATE DATABASE.

Database creati senza la clausola WITH PERMISSIONS

Quando assegni l'autorizzazione USAGE per un database creato da un'unità di condivisione dati senza la clausola WITH PERMISSIONS, non è necessario fornire separatamente le autorizzazioni per gli oggetti nel database condiviso. Le entità a cui è fornito l'utilizzo dei database creati dall'unità di condivisione dati senza la clausola WITH PERMISSIONS hanno automaticamente accesso a tutti gli oggetti del database.

Database creati con la clausola WITH PERMISSIONS

Quando assegni USAGE per un database condiviso che è stato creato da un'unità di condivisione dati con la clausola WITH PERMISSIONS, alle identità lato consumer devono comunque essere fornite le autorizzazioni pertinenti per gli oggetti del database condiviso per potervi accedere, proprio come si farebbe per le autorizzazioni degli oggetti del database locale. Per assegnare le autorizzazioni agli oggetti di un database creato da un'unità di condivisione dati, utilizza la sintassi in tre parti database_name.schema_name.object_name. Per assegnare le autorizzazioni agli oggetti in uno schema esterno che fa riferimento a uno schema condiviso del database condiviso, utilizza la sintassi in due parti schema_name.object_name.

GRANT USAGE ON { DATABASE shared_database_name [, ...] | SCHEMA shared_schema} TO { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...]

Le autorizzazioni con ambito consentono di concedere autorizzazioni a un utente o a un ruolo su tutti gli oggetti di un tipo all'interno di un database o di uno schema. Gli utenti e i ruoli con autorizzazioni mirate dispongono delle autorizzazioni specificate su tutti gli oggetti attuali e futuri all'interno del database o dello schema.

Di seguito è riportata la sintassi per assegnare a utenti e ruoli le autorizzazioni con ambito. Per ulteriori informazioni sulle autorizzazioni con ambito, vedere. Autorizzazioni con ambito

GRANT { CREATE | USAGE | ALTER } [,...] | ALL [ PRIVILEGES ] } FOR SCHEMAS IN DATABASE db_name TO { username [ WITH GRANT OPTION ] | ROLE role_name } [, ...] GRANT { { SELECT | INSERT | UPDATE | DELETE | DROP | ALTER | TRUNCATE | REFERENCES } [, ...] } | ALL [PRIVILEGES] } } FOR TABLES IN {SCHEMA schema_name [DATABASE db_name ] | DATABASE db_name } TO { username [ WITH GRANT OPTION ] | ROLE role_name} [, ...] GRANT { EXECUTE | ALL [ PRIVILEGES ] } FOR FUNCTIONS IN {SCHEMA schema_name [DATABASE db_name ] | DATABASE db_name } TO { username [ WITH GRANT OPTION ] | ROLE role_name | } [, ...] GRANT { EXECUTE | ALL [ PRIVILEGES ] } FOR PROCEDURES IN {SCHEMA schema_name [DATABASE db_name ] | DATABASE db_name } TO { username [ WITH GRANT OPTION ] | ROLE role_name | } [, ...] GRANT USAGE FOR LANGUAGES IN {DATABASE db_name} TO { username [ WITH GRANT OPTION ] | ROLE role_name } [, ...]

Tieni presente che le autorizzazioni con ambito non fanno distinzione tra le autorizzazioni per le funzioni e per le procedure. Ad esempio, l'istruzione seguente concede l'EXECUTEautorizzazione sia per bob le funzioni che per le procedure dello schema. Sales_schema

GRANT EXECUTE FOR FUNCTIONS IN SCHEMA Sales_schema TO bob;

Di seguito è riportata la sintassi per le autorizzazioni per il modello di machine learning su Amazon Redshift.

GRANT CREATE MODEL TO { username [ WITH GRANT OPTION ] | ROLE role_name | GROUP group_name | PUBLIC } [, ...] GRANT { EXECUTE | ALL [ PRIVILEGES ] } ON MODEL model_name [, ...] TO { username [ WITH GRANT OPTION ] | ROLE role_name | GROUP group_name | PUBLIC } [, ...]

Di seguito è riportata la sintassi per concedere le autorizzazioni per i ruoli su Amazon Redshift.

GRANT { ROLE role_name } [, ...] TO { { user_name [ WITH ADMIN OPTION ] } | ROLE role_name }[, ...]

Di seguito è riportata la sintassi per concedere le autorizzazioni di sistema per i ruoli su Amazon Redshift.

GRANT { { CREATE USER | DROP USER | ALTER USER | CREATE SCHEMA | DROP SCHEMA | ALTER DEFAULT PRIVILEGES | ACCESS CATALOG | CREATE TABLE | DROP TABLE | ALTER TABLE | CREATE OR REPLACE FUNCTION | CREATE OR REPLACE EXTERNAL FUNCTION | DROP FUNCTION | CREATE OR REPLACE PROCEDURE | DROP PROCEDURE | CREATE OR REPLACE VIEW | DROP VIEW | CREATE MODEL | DROP MODEL | CREATE DATASHARE | ALTER DATASHARE | DROP DATASHARE | CREATE LIBRARY | DROP LIBRARY | CREATE ROLE | DROP ROLE | TRUNCATE TABLE VACUUM | ANALYZE | CANCEL }[, ...] } | { ALL [ PRIVILEGES ] } TO { ROLE role_name } [, ...]

Di seguito è riportata la sintassi per la concessione delle autorizzazioni che spiega i filtri delle policy di sicurezza a livello di riga di una query nel piano EXPLAIN. Puoi revocare il privilegio utilizzando l'istruzione REVOKE.

GRANT EXPLAIN RLS TO ROLE rolename

Di seguito è riportata la sintassi per concedere le autorizzazioni per aggirare le policy di sicurezza a livello di riga per una query.

GRANT IGNORE RLS TO ROLE rolename

Di seguito è riportata la sintassi per concedere le autorizzazioni alla policy di sicurezza a livello di riga.

GRANT SELECT ON [ TABLE ] table_name [, ...] TO RLS POLICY policy_name [, ...]

Parametri

SELECT

Revoca l'autorizzazione a selezionare i dati da una tabella o una vista utilizzando un'istruzione SELECT. L'autorizzazione SELECT è richiesta anche per fare riferimento ai valori di colonna esistenti per le operazioni UPDATE o DELETE.

INSERT

Concede l'autorizzazione a caricare i dati in una tabella utilizzando un'istruzione INSERT o un'istruzione COPY.

UPDATE

Concede l'autorizzazione ad aggiornare una colonna della tabella utilizzando un'istruzione UPDATE. Le operazioni UPDATE richiedono anche l'autorizzazione SELECT, perché devono fare riferimento alle colonne della tabella per determinare quali righe aggiornare o per calcolare nuovi valori per le colonne.

DELETE

Concede l'autorizzazione a eliminare una riga di dati da una tabella. Le operazioni DELETE richiedono anche il privilegio SELECT, perché devono fare riferimento alle colonne della tabella per determinare quali righe eliminare.

DROP

Concede l'autorizzazione a eliminare una tabella. Questa autorizzazione si applica in Amazon Redshift e in un AWS Glue Data Catalog ambiente abilitato per Lake Formation.

REFERENCES

Concede l'autorizzazione a creare un vincolo di chiave esterna. È necessario concedere questa autorizzazione sia sulla tabella a cui si fa riferimento sia sulla tabella che fa riferimento; in caso contrario, l'utente non può creare il vincolo.

ALTER

A seconda dell'oggetto del database, concede le seguenti autorizzazioni all'utente o al gruppo di utenti:

  • Per le tabelle, ALTER concede l'autorizzazione a modificare una tabella o una vista. Per ulteriori informazioni, consulta ALTER TABLE.

  • Per i database, ALTER concede l'autorizzazione a modificare un database. Per ulteriori informazioni, consulta ALTER DATABASE.

  • Per gli schemi, ALTER concede l'autorizzazione a modificare uno schema. Per ulteriori informazioni, consulta ALTER SCHEMA.

  • Per le tabelle esterne, ALTER concede l'autorizzazione a modificare una tabella in un file AWS Glue Data Catalog abilitato per Lake Formation. Questa autorizzazione si applica solo quando si utilizza Lake Formation.

TRUNCATE

Concede l'autorizzazione a troncare una tabella. Senza questa autorizzazione, solo il proprietario di una tabella o un utente con privilegi avanzati può troncare una tabella. Per ulteriori informazioni sul comando TRUNCATE, consulta TRUNCATE.

ALL [ PRIVILEGES ]

Concede tutte le autorizzazioni disponibili contemporaneamente all'utente o al gruppo di utenti specificato. La parola chiave PRIVILEGES è facoltativa.

GRANT ALL ON SCHEMA non concede le autorizzazioni CREATE per gli schemi esterni.

Puoi concedere l'autorizzazione ALL a una tabella in un AWS Glue Data Catalog che è abilitata per Lake Formation. In questo caso, le singole autorizzazioni (come SELECT, ALTER e così via) sono registrate nel catalogo dati.

ASSUMEROLE

Concede l'autorizzazione a eseguire i comandi COPY, UNLOAD, EXTERNAL FUNCTION e CREATE MODEL a utenti, ruoli o gruppi con un ruolo specificato. L'utente, il ruolo o il gruppo assume tale ruolo all'esecuzione del comando specificato. Per iniziare a utilizzare l'autorizzazione ASSUMEROLE, consultare Note di utilizzo per la concessione dell'autorizzazione ASSUMEROLE.

ON [ TABLE ] table_name

Concede le autorizzazioni specificate su una tabella o una vista. La parola chiave TABLE è facoltativa. Puoi elencare più tabelle e viste in un'unica istruzione.

ON ALL TABLES IN SCHEMA schema_name

Concede le autorizzazioni specificate su tutte le tabelle e le viste nello schema a cui si fa riferimento.

( column_name [,...] ) ON TABLE table_name

Concede le autorizzazioni specificate a utenti, gruppi o PUBLIC sulle colonne specificate della tabella o della vista di Amazon Redshift.

( column_list ) ON EXTERNAL TABLE schema_name.table_name

Concede le autorizzazioni specificate a un ruolo IAM nelle colonne indicate della tabella Lake Formation nello schema a cui si fa riferimento.

ON EXTERNAL TABLE schema_name.table_name

Concede le autorizzazioni specificate a un ruolo IAM nelle tabelle Lake Formation indicate dello schema a cui si fa riferimento.

ON EXTERNAL SCHEMA schema_name

Concede le autorizzazioni specificate a un ruolo IAM nello schema a cui si fa riferimento.

ON ruolo_iam

Concede le autorizzazioni specificate a un ruolo IAM.

TO username

Indica l'utente che riceve le autorizzazioni.

TO IAM_ROLE iam_role

Indica il ruolo IAM che riceve le autorizzazioni.

WITH GRANT OPTION

Indica che l'utente che riceve le autorizzazioni può a sua volta concedere le stesse autorizzazioni ad altri. WITH GRANT OPTION non può essere concesso a un gruppo o a PUBLIC.

ROLE role_name

Concede le autorizzazioni a un ruolo.

GROUP group_name

Concede le autorizzazioni a un gruppo di utenti. Può essere un elenco separato da virgole per specificare più gruppi di utenti.

PUBLIC

Concede le autorizzazioni specificate a tutti gli utenti, inclusi gli utenti creati in un momento successivo. PUBLIC rappresenta un gruppo che include sempre tutti gli utenti. Le autorizzazioni di un singolo utente consistono nella somma delle autorizzazioni concesse a PUBLIC, delle autorizzazioni concesse a tutti i gruppi a cui l'utente appartiene e di tutte le autorizzazioni concesse all'utente singolarmente.

La concessione di PUBLIC a una EXTERNAL TABLE di Lake Formation implica la concessione dell'autorizzazione al gruppo everyone di Lake Formation.

CREATE

A seconda dell'oggetto del database, concede le seguenti autorizzazioni all'utente o al gruppo di utenti:

  • Per i database, CREATE consente agli utenti di creare schemi all'interno del database.

  • Per gli schemi, CREATE consente agli utenti di creare oggetti all'interno di uno schema. Per rinominare un oggetto, l'utente deve avere l'autorizzazione CREATE ed essere il proprietario dell'oggetto da rinominare.

  • CREATE ON SCHEMA non è supportato per gli schemi esterni di Amazon Redshift Spectrum. Per garantire l'utilizzo di tabelle esterne in uno schema esterno, concedi USAGE ON SCHEMA agli utenti che devono accedere. Solo il proprietario di uno schema esterno o di un utente con privilegi avanzati è autorizzato a creare tabelle esterne nello schema esterno. Per trasferire la proprietà di uno schema esterno, utilizza ALTER SCHEMA per cambiare il proprietario.

TEMPORARY | TEMP

Concede l'autorizzazione a creare tabelle temporanee nel database specificato. Per eseguire query Amazon Redshift Spectrum, l'utente del database deve avere l'autorizzazione per creare tabelle temporanee nel database.

Nota

Per impostazione predefinita, agli utenti è concessa l'autorizzazione di creare tabelle temporanee tramite la loro appartenenza automatica al gruppo PUBLIC. Per rimuovere l'autorizzazione per gli utenti di creare tabelle temporanee, revoca l'autorizzazione TEMP dal gruppo PUBLIC. Quindi concedere esplicitamente l'autorizzazione per creare tabelle temporanee per utenti o gruppi di utenti specifici.

ON DATABASE db_name

Concede le autorizzazioni specificate su un database.

USAGE

Concede l'autorizzazione USAGE su uno schema specifico che rende gli oggetti in tale schema accessibili agli utenti. Le autorizzazioni per operazioni specifiche su questi oggetti devono essere concesse separatamente (ad esempio, le autorizzazioni SELECT o UPDATE sulle tabelle) per gli schemi Amazon Redshift locali. Per impostazione predefinita, tutti gli utenti dispongono delle autorizzazioni CREATE e USAGE per lo schema PUBLIC.

Quando si concede l'autorizzazione USAGE a schemi esterni utilizzando la sintassi ON SCHEMA, non è necessario concedere autorizzazioni per azioni separatamente sugli oggetti nello schema esterno. Le autorizzazioni del catalogo corrispondenti controllano le autorizzazioni granulari per gli oggetti dello schema esterno.

ON SCHEMA schema_name

Concede le autorizzazioni specificate su uno schema.

GRANT CREATE ON SCHEMA e l'autorizzazione CREATE in GRANT ALL ON SCHEMA non sono supportati per gli schemi esterni di Amazon Redshift Spectrum. Per garantire l'utilizzo di tabelle esterne in uno schema esterno, concedi USAGE ON SCHEMA agli utenti che devono accedere. Solo il proprietario di uno schema esterno o di un utente con privilegi avanzati è autorizzato a creare tabelle esterne nello schema esterno. Per trasferire la proprietà di uno schema esterno, utilizza ALTER SCHEMA per cambiare il proprietario.

EXECUTE ON ALL FUNCTIONS IN SCHEMA schema_name

Concede le autorizzazioni specificate su tutte le funzioni nello schema a cui si fa riferimento.

Amazon Redshift non supporta le istruzioni GRANT o REVOKE per le voci integrate pg_proc definite nello spazio dei nomi pg_catalog.

EXECUTE ON PROCEDURE procedure_name

Concede l'autorizzazione EXECUTE su una procedura archiviata specifica. Poiché i nomi delle procedure archiviate possono essere in overload, devi includere l'elenco degli argomenti per la procedura. Per ulteriori informazioni, consulta Denominazione delle stored procedure.

EXECUTE ON ALL PROCEDURES IN SCHEMA schema_name

Concede le autorizzazione specificate su tutte le procedure archiviate nello schema a cui si fa riferimento.

USAGE ON LANGUAGE language_name

Concede l'autorizzazione USAGE per una lingua.

L'autorizzazione USAGE ON LANGUAGE è necessaria per creare funzioni definite dall'utente (UDF) eseguendo il comando CREATE FUNCTION. Per ulteriori informazioni, consulta Sicurezza e privilegi dell'UDF.

È necessaria l'autorizzazione USAGE ON LANGUAGE per creare procedure archiviate eseguendo il comando CREATE PROCEDURE. Per ulteriori informazioni, consulta Sicurezza e privilegi per le procedure archiviate .

Per le funzioni definite dall'utente Python usa plpythonu. Per le funzioni definite dall'utente SQL usa sql. Per le procedure archiviate, usa plpgsql.

FOR { ALL | COPY | UNLOAD | EXTERNAL FUNCTION | CREATE MODEL } [, ...]

Specifica il comando SQL per il quale viene concessa l'autorizzazione. Puoi specificare ALL per concedere l'autorizzazione sulle istruzioni COPY, UNLOAD, EXTERNAL FUNCTION e CREATE MODEL. Questa clausola si applica solo alla concessione dell'autorizzazione ASSUMEROLE.

ALTER

Concede l'autorizzazione ALTER agli utenti per aggiungere o rimuovere oggetti da una unità di condivisione dati o per impostare la proprietà PUBLICACCESSIBLE. Per ulteriori informazioni, consulta ALTER DATASHARE.

SHARE

Concede autorizzazioni a utenti e gruppi di utenti per aggiungere consumer di dati a una unità di condivisione dati. Questa autorizzazione è necessaria per consentire al particolare consumer (account o spazio dei nomi) di accedere all'unità di condivisione dati dai propri cluster. Il consumatore può essere lo stesso account o un AWS account diverso, con lo stesso spazio dei nomi del cluster o uno diverso, come specificato da un identificatore univoco globale (GUID).

ON DATASHARE nome_unità_condivisione_dati

Concede le autorizzazioni specificate sull'unità di condivisione dati a cui si fa riferimento. Per informazioni sulla granularità del controllo degli accessi dei consumer, consultare Condivisione di dati a diversi livelli in Amazon Redshift.

USAGE

Quando USAGE viene concesso a un account consumer o a uno spazio dei nomi all'interno dello stesso account, l'account consumer specifico o lo spazio dei nomi all'interno dell'account potrà accedere all'unità di condivisione dati e gli oggetti dell'unità di condivisione dati saranno in sola lettura.

TO NAMESPACE 'clusternamespace GUID'

Indica uno spazio dei nomi nello stesso account in cui i consumer possono ricevere le autorizzazioni specificate per l'unità di condivisione dati. Gli spazi dei nomi utilizzano un GUID alfanumerico a 128 bit.

TO ACCOUNT 'accountnumber' [ VIA DATA CATALOG ]

Indica il numero di un altro account i cui consumer possono ricevere le autorizzazioni specificate per l'unità di condivisione dati. Quando si specifica "VIA DATA CATALOG" si sta concedendo l'autorizzazione per l'utilizzo dell'unità di condivisione dati a un account Lake Formation. L'omissione di questo parametro indica che si sta concedendo l'autorizzazione per l'utilizzo a un account proprietario del cluster.

ON DATABASE nome_database_condiviso> [, ...]

Concede le autorizzazioni di utilizzo per il database specificato creato nell'unità di condivisione dati specificata.

ON SCHEMA schema_condiviso

Concede le autorizzazioni per lo schema specificato creato nell'unità di condivisione dati specificata.

FOR { SCHEMAS | TABLES | FUNCTIONS | PROCEDURES | LANGUAGES } IN

Specifica gli oggetti del database a cui assegnare l'autorizzazione. I parametri successivi a IN definiscono l'ambito dell'autorizzazione assegnata.

CREATE MODEL

Concede l'autorizzazione CREATE MODEL a utenti o gruppi di utenti specifici.

ON MODEL nome_modello

Concede l'autorizzazione EXECUTE su un modello specifico.

ACCESS CATALOG

Assegna l'autorizzazione a visualizzare i metadati pertinenti degli oggetti a cui il ruolo ha accesso.

{ role } [, ...]

Il ruolo da concedere a un altro ruolo, un utente o PUBLIC.

PUBLIC rappresenta un gruppo che include sempre tutti gli utenti. Le autorizzazioni di un singolo utente consistono nella somma delle autorizzazioni concesse a PUBLIC, delle autorizzazioni concesse a tutti i gruppi a cui l'utente appartiene e di tutte le autorizzazioni concesse all'utente singolarmente.

TO { { user_name [ WITH ADMIN OPTION ] } | role }[, ...]

Concede il ruolo specificato a un utente specificato con l'opzione WITH ADMIN OPTION, un altro ruolo o PUBLIC.

La clausola WITH ADMIN OPTION fornisce le opzioni di amministrazione per tutti i ruoli concessi a tutti gli assegnatari.

EXPLAIN RLS TO ROLE rolename

Concede a un ruolo l'autorizzazione a spiegare i filtri delle policy di sicurezza a livello di riga di una query nel piano EXPLAIN.

IGNORE RLS TO ROLE rolename

Concede a un ruolo l'autorizzazione a escludere le policy di sicurezza a livello di riga per una query.

Per ulteriori informazioni sulle note di utilizzo di GRANT, consulta Note per l'utilizzo.

Per gli esempi di come utilizzare GRANT, consulta Esempi.