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 Autorizzazioni disponibili per le 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 | DROP } [,...] | 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 } [, ...] GRANT { { ALTER | DROP} [,...] | ALL [ PRIVILEGES ] } ON COPY JOB job_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.
È possibile visualizzare l'ambito delle autorizzazioni con ambito a livello di database in. SVV_DATABASE_PRIVILEGES È possibile visualizzare l'ambito delle autorizzazioni con ambito a livello di schema in. SVV_SCHEMA_PRIVILEGES
Per ulteriori informazioni sulle autorizzazioni con ambito, vedere. Autorizzazioni con ambito
Di seguito è riportata la sintassi per assegnare a utenti e ruoli le autorizzazioni con ambito.
GRANT { CREATE | USAGE | ALTER | DROP } [,...] | 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 } [, ...] GRANT { { CREATE | ALTER | DROP} [,...] | ALL [ PRIVILEGES ] } FOR COPY JOBS 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'EXECUTE
autorizzazione 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 la concessione di 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. Tieni presente che puoi concedere autorizzazioni solo ai ruoli, non agli utenti.
GRANT { { CREATE USER | DROP USER | ALTER USER | CREATE SCHEMA | DROP SCHEMA | ALTER DEFAULT PRIVILEGES | ACCESS CATALOG | ACCESS SYSTEM TABLE 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 | IGNORE RLS | EXPLAIN RLS | EXPLAIN MASKING }[, ...] } | { 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
-
A seconda dell'oggetto del database, concede le seguenti autorizzazioni all'utente o al ruolo:
-
Per le tabelle, DROP concede il permesso di eliminare una tabella o una vista. Per ulteriori informazioni, consulta DROP TABLE.
-
Per i database, DROP concede il permesso di eliminare un database. Per ulteriori informazioni, consulta DROP DATABASE.
-
Per gli schemi, DROP concede il permesso di eliminare uno schema. Per ulteriori informazioni, consulta DROP SCHEMA.
-
- 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 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 ruolo 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.
Nota
Amazon Redshift non supporta le autorizzazioni RULE e TRIGGER. Per ulteriori informazioni, consulta Caratteristiche PostgreSQL non supportate.
- 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 è richiesta per creare funzioni definite dall'utente (UDFs) eseguendo il comando. CREATE FUNCTION Per ulteriori informazioni, consulta Sicurezza e autorizzazioni 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 Python UDFs, usa.
plpythonu
Per SQL UDFs, usasql
. Per le procedure archiviate, usaplpgsql
. - ON COPY JOB job_name
-
Concede le autorizzazioni specificate per un lavoro di copia.
- 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).
-
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 dei 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.
-
Concede le autorizzazioni di utilizzo per il database specificato creato nell'unità di condivisione dati specificata.
-
Concede le autorizzazioni per lo schema specificato creato nell'unità di condivisione dati specificata.
- PER {SCHEMI | TABELLE | FUNZIONI | PROCEDURE | LINGUE | LAVORI DI COPIA} 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.
Note per l'utilizzo
Per ulteriori informazioni sulle note di utilizzo di GRANT, consulta Note per l'utilizzo.
Esempi
Per gli esempi di come utilizzare GRANT, consulta Esempi.