GRANT - Amazon Redshift

GRANT

Define permissões de acesso para um usuário ou uma função.

As permissões incluem opções de acesso como leitura de dados em tabelas e visualizações, gravação de dados e criação de tabelas. Use este comando para fornecer permissões específicas para uma tabela, banco de dados, esquema, função, procedimento, linguagem ou coluna. Para revogar permissões de um objeto de banco de dados, use o comando REVOKE.

As permissões também incluem as seguintes opções de acesso do produtor da unidade de compartilhamento de dados:

  • Concessão de acesso à unidade de compartilhamento de dados para namespaces e contas de consumidores.

  • Concessão de permissão para alterar uma unidade de compartilhamento de dados adicionando ou removendo objetos da unidade de compartilhamento de dados.

  • Concessão de permissão para compartilhar uma unidade de compartilhamento de dados adicionando ou removendo namespaces de consumidores da unidade de compartilhamento de dados.

As opções de acesso do consumidor à unidade de compartilhamento de dados são as seguintes:

  • Concessão a usuários de acesso total a bancos de dados criados a partir de uma unidade de compartilhamento de dados ou a esquemas externos que apontem para esses bancos de dados.

  • Concessão a usuários de permissões no nível do objeto em bancos de dados criados a partir de uma unidade de compartilhamento de dados como a que você pode para objetos de banco de dados. Para conceder esse nível de permissão, você deve usar a cláusula WITH PERMISSIONS ao criar um banco de dados a partir da unidade de compartilhamento de dados. Para ter mais informações, consulte CREATE DATABASE.

Para obter mais informações sobre permissões da unidade de compartilhamento de dados, consulte Compartilhamento de dados dentro e entre clusters.

Você também pode conceder perfis para gerenciar permissões de banco de dados e controlar o que os usuários podem fazer em relação aos seus dados. Ao definir perfis e atribuí-los aos usuários, você pode limitar as ações que esses usuários podem realizar, como limitar os usuários somente aos comandos CREATE TABLE e INSERT. Para obter mais informações sobre o comando CREATE ROLE, consulte CRIAR PERFIL. O Amazon Redshift tem alguns perfis definidos pelo sistema que você também pode usar para conceder permissões específicas aos seus usuários. Para ter mais informações, consulte Funções definidas pelo sistema do Amazon Redshift.

Só é possível CONCEDER ou REVOGAR permissões de USO em um esquema externo para usuários de banco de dados e grupos de usuários que usam a sintaxe ON SCHEMA. Ao usar ON EXTERNAL SCHEMA com AWS Lake Formation, só é possível conceder (GRANT) e revogar (REVOKE) permissões para um perfil do AWS Identity and Access Management (IAM). Para obter a lista de permissões, consulte a sintaxe.

Para procedimentos armazenados, a única permissão que pode ser concedida é EXECUTE.

Não é possível executar GRANT (em um recurso externo) em um bloco de transação (BEGIN ... END). Para obter mais informações sobre transações, consulte Isolamento serializável.

Para ver quais permissões os usuários receberam para um banco de dados, use HAS_DATABASE_PRIVILEGE. Para ver quais permissões os usuários receberam para um esquema, use HAS_SCHEMA_PRIVILEGE. Para ver quais permissões os usuários receberam para uma tabela, use HAS_TABLE_PRIVILEGE.

Sintaxe

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 } [, ...]

A seguir está a sintaxe para permissões por coluna em tabelas e visualizações do Amazon Redshift.

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

A seguir está a sintaxe para as permissões ASSUMEROLE concedidas a usuários e grupos com um perfil especificado. Para começar a usar o privilégio ASSUMEROLE, consulte Observações de uso para conceder a permissão 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 } [, ...]

A seguir está a sintaxe para integração do Redshift Spectrum com 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 ]
Permissões da unidade de compartilhamento de dados no lado do produtor

Esta é a sintaxe para usar GRANT a fim de conceder permissões ALTER ou SHARE a um usuário ou perfil. O usuário pode alterar a unidade de compartilhamento de dados com a permissão ALTER ou conceder o uso a um consumidor com a permissão SHARE. ALTER e SHARE são as únicas permissões que você pode conceder em uma unidade de compartilhamento de dados a usuários e funções.

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

A seguir está a sintaxe para usar GRANT para permissões de uso de unidade de compartilhamento de dados no Amazon Redshift. Você concede acesso de uma unidade de compartilhamento de dados a um consumidor usando a permissão USAGE. Você não pode conceder essa permissão a usuários ou grupos de usuários. Essa permissão também não é compatível com WITH GRANT OPTION para a instrução GRANT. Somente usuários ou grupos de usuários com a permissão SHARE concedida anteriormente a eles para (FOR) a unidade de compartilhamento de dados podem executar esse tipo de instrução GRANT.

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

Veja a seguir um exemplo de como conceder o uso de uma unidade de compartilhamento de dados a uma conta do Lake Formation.

GRANT USAGE ON DATASHARE salesshare TO ACCOUNT '123456789012' VIA DATA CATALOG;
Permissões da unidade de compartilhamento de dados no lado do consumidor

A seguir está a sintaxe para permissões de uso de compartilhamento de dados GRANT em um banco de dados específico ou esquema criado a partir de um datashare.

Outras permissões necessárias para consumidores terem acesso a um banco de dados criado a partir de uma unidade de compartilhamento de dados variam dependendo do comando CREATE DATABASE usado para criar o banco de dados a partir da unidade de compartilhamento de dados ter usado ou não a cláusula WITH PERMISSIONS. Para obter mais informações sobre o comando CREATE DATABASE e a cláusula WITH PERMISSIONS, consulte CREATE DATABASE.

Bancos de dados criados sem usar a cláusula WITH PERMISSIONS

Ao conceder USAGE em um banco de dados criado a partir de uma unidade de compartilhamento de dados sem a cláusula WITH PERMISSIONS, você não precisa conceder permissões separadamente nos objetos no banco de dados compartilhado. As entidades com uso concedido em bancos de dados criados a partir de unidades de compartilhamento de dados sem a cláusula WITH PERMISSIONS têm acesso automático a todos os objetos no banco de dados.

Bancos de dados criados usando a cláusula WITH PERMISSIONS

Quando você concede USAGE em um banco de dados no qual o banco de dados compartilhado foi criado a partir de uma unidade de compartilhamento de dados com a cláusula WITH PERMISSIONS, as identidades no lado do consumidor ainda devem receber as permissões relevantes para objetos de banco de dados no banco de dados compartilhado para terem acesso a eles, assim como você concederia permissões para objetos de banco de dados locais. Para conceder permissões a objetos em um banco de dados criado a partir de uma unidade de compartilhamento de dados, use a sintaxe de três partes database_name.schema_name.object_name. Para conceder permissões a objetos em um esquema externo apontando para um esquema compartilhado no banco de dados compartilhado, use a sintaxe de duas partes schema_name.object_name.

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

Com as permissões em escopo, é possível conceder permissões a um usuário ou função em todos os objetos de um tipo em um banco de dados ou esquema. Usuários e funções com permissões em escopo têm as permissões especificadas em todos os objetos atuais e futuros no banco de dados ou esquema.

Você pode visualizar o escopo das permissões com escopo em nível de banco de dados em SVV_DATABASE_PRIVILEGES. Você pode visualizar o escopo das permissões com escopo em nível de esquema em SVV_SCHEMA_PRIVILEGES.

Esta é a sintaxe para concessão de permissões em escopo para usuários ou perfis. Para ter mais informações sobre permissões com escopo definido, consulte Permissões em escopo.

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 } [, ...]

Observe que as permissões no escopo não fazem distinção entre permissões para funções e procedimentos. Por exemplo, a declaração a seguir concede a bob a permissão EXECUTE para funções e procedimentos no esquema Sales_schema.

GRANT EXECUTE FOR FUNCTIONS IN SCHEMA Sales_schema TO bob;

A seguir está a sintaxe para permissões de modelos de machine learning no 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 } [, ...]

A sintaxe a seguir concede permissões de perfil no Amazon Redshift.

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

A sintaxe a seguir concede permissões de sistema a perfis no 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 } [, ...]

Veja a seguir a sintaxe para conceder permissões para explicar os filtros de política de segurança no nível da linha de uma consulta no plano EXPLAIN. É possível revogar o privilégio usando a instrução REVOKE.

GRANT EXPLAIN RLS TO ROLE rolename

Veja a seguir a sintaxe para conceder permissões para ignorar políticas de segurança no nível da linha para uma consulta.

GRANT IGNORE RLS TO ROLE rolename

Veja a seguir a sintaxe para conceder permissões para a política de segurança no nível da linha especificada.

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

Parâmetros

SELECT

Concede permissão para selecionar dados de uma tabela ou visualização usando uma instrução SELECT. A permissão SELECT também é necessária para fazer referência a valores de coluna existentes para as operações UPDATE ou DELETE.

INSERT

Concede permissão para carregar dados em uma tabela usando uma instrução INSERT ou COPY.

UPDATE

Concede permissão para atualizar uma coluna de tabela usando a instrução UPDATE. As operações UPDATE também exigem a permissão SELECT, pois devem fazer referência a colunas da tabela para determinar que linhas atualizar ou computar novos valores para as colunas.

DELETE

Concede permissão para excluir uma linha de dados de uma tabela. As operações DELETE também necessitam do privilégio SELECT, pois devem fazer referência a colunas da tabela para determinar que linhas excluir.

DROP

Concede permissão para remover uma tabela. Essa permissão se aplica no Amazon Redshift e em um AWS Glue Data Catalog que está habilitado para o Lake Formation.

REFERENCES

Concede permissão para criar uma restrição de chave estrangeira. Você precisa conceder essa permissão na tabela referenciada e na tabela que faz a referência. Caso contrário, o usuário não poderá criar a restrição.

ALTER

Dependendo do objeto do banco de dados, as seguintes permissões são concedidas ao usuário ou ao grupo de usuários:

  • Para tabelas, ALTER concede permissão para alterar uma tabela ou visão. Para ter mais informações, consulte ALTER TABLE.

  • Para bancos de dados, ALTER concede permissão para alterar um banco de dados. Para ter mais informações, consulte ALTER DATABASE.

  • Para esquemas, ALTER concede permissão para alterar um esquema. Para ter mais informações, consulte ALTER SCHEMA.

  • Para tabelas externas, ALTER concede permissão para alterar uma tabela em um AWS Glue Data Catalog habilitado para o Lake Formation. Essa permissão só é aplicada ao usar o Lake Formation.

TRUNCATE

Concede permissão para truncar uma tabela. Sem essa permissão, somente o proprietário de uma tabela ou um superusuário pode truncar uma tabela. Para obter mais informações sobre o comando TRUNCATE, consulte TRUNCATE.

ALL [ PRIVILEGES ]

Concede todas as permissões disponíveis de uma vez ao usuário ou ao perfil especificado. A palavra-chave PRIVILEGES é opcional.

GRANT ALL ON SCHEMA não concede permissões CREATE para esquemas externos.

É possível conceder a permissão ALL para uma tabela em um AWS Glue Data Catalog habilitado para o Lake Formation. Nesse caso, permissões individuais (como SELECT, ALTER e assim por diante) são registradas no catálogo de dados.

nota

O Amazon Redshift não é compatível com as permissões RULE e TRIGGER. Para obter mais informações, acesse Recursos incompatíveis do PostgreSQL.

ASSUMEROLE

Concede permissões para executar comandos COPY, UNLOAD, EXTERNAL FUNCTION e CREATE MODEL a usuários, perfis ou grupos com um perfil especificado. O usuário, perfil ou grupo assume esse perfil ao executar o comando especificado. Para começar a usar a permissão ASSUMEROLE, consulte Observações de uso para conceder a permissão ASSUMEROLE.

ON [ TABLE ] table_name

Concede as permissões especificadas em uma tabela ou visualização. A palavra-chave TABLE é opcional. Você pode listar várias tabelas e exibições em uma instrução.

ON ALL TABLES IN SCHEMA schema_name

Concede as permissões especificadas em todas as tabelas e exibições no esquema de referência.

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

Concede as permissões especificadas a usuários, grupos ou PUBLIC nas colunas especificadas da tabela ou visualização do Amazon Redshift.

( column_list ) ON EXTERNAL TABLE schema_name.table_name

Concede as permissões especificadas para um perfil do IAM nas colunas especificadas da tabela do Lake Formation no esquema mencionado.

ON EXTERNAL TABLE schema_name.table_name

Concede as permissões especificadas para um perfil do IAM nas tabelas especificadas do Lake Formation no esquema mencionado.

ON EXTERNAL SCHEMA schema_name

Concede as permissões especificadas para um perfil do IAM no esquema mencionado.

ON iam_role

Concede as permissões especificadas para um perfil do IAM.

TO username

Indica o usuário que está recebendo as permissões.

TO IAM_ROLE iam_role

Indica o perfil do IAM que está recebendo as permissões.

WITH GRANT OPTION

Indica que o usuário que recebe as permissões pode, por sua vez, conceder as mesmas permissões a outros. WITH GRANT OPTION não pode ser concedido a um grupo ou a PUBLIC.

ROLE role_name

Concede as permissões ao perfil.

GROUP nome_grupo

Concede as permissões a um grupo de usuários. Pode ser uma lista separada por vírgulas para especificar vários grupos de usuários.

PUBLIC

Concede as permissões especificadas a todos os usuários, incluindo os usuários criados posteriormente. PUBLIC representa um grupo que inclui sempre todos os usuários. As permissões de um usuário individual consistem na soma das permissões concedidas a PUBLIC, das permissões concedidas a todos os grupos aos quais o usuário pertence e de quaisquer permissões concedidas ao usuário individualmente.

Conceder PUBLIC a um EXTERNAL TABLE do Lake Formation resulta em conceder a permissão para o grupo todos do Lake Formation.

CREATE

Dependendo do objeto do banco de dados, as seguintes permissões são concedidas ao usuário ou ao grupo de usuários:

  • Para bancos de dados, CREATE permite que os usuários criem esquemas no banco de dados.

  • Para esquemas, CREATE permite que os usuários criem objetos em um esquema. Para renomear um objeto, o usuário deve ter a permissão CREATE e ser proprietário do objeto a ser renomeado.

  • Não há suporte para CREATE ON SCHEMA nos esquemas externos do Amazon Redshift Spectrum. Para conceder o uso de tabelas externas em um esquema externo, conceda USAGE ON SCHEMA a usuários que precisam de acesso. Somente o proprietário de um esquema externo ou um superusuário tem permissão para criar tabelas externas no esquema externo. Para transferir a propriedade de um esquema externo, use ALTER SCHEMA para alterar o proprietário.

TEMPORARY | TEMP

Concede permissão para criar tabelas temporárias no banco de dados especificado. Para executar as consultas do Amazon Redshift Spectrum, o usuário do banco de dados precisa ter permissão para criar tabelas temporárias no banco de dados.

nota

Por padrão, os usuários recebem permissão para criar tabelas temporárias por associação automática ao grupo PUBLIC. Para remover a permissão para que qualquer usuário crie tabelas temporárias, revogue a permissão TEMP do grupo PUBLIC. Em seguida, conceda explicitamente a permissão para criar tabelas temporárias para usuários ou grupos de usuários específicos.

ON DATABASE nome_bd

Concede as permissões especificadas em um banco de dados.

USAGE

Concede a permissão USAGE em um esquema específico, que torna objetos naquele esquema acessíveis aos usuários. As ações específicas nesses objetos devem ser concedidas separadamente (por exemplo, permissões SELECT ou UPDATE em tabelas) para esquemas locais do Amazon Redshift. Por padrão, todos os usuários têm permissões CREATE e USAGE no esquema PUBLIC.

Ao conceder USAGE a esquemas externos usando a sintaxe ON SCHEMA, você não precisa conceder ações separadamente nos objetos no esquema externo. As permissões de catálogo correspondentes controlam as permissões granulares nos objetos externos do esquema.

ON SCHEMA schema_name

Concede as permissões especificadas em um esquema.

GRANT CREATE ON SCHEMA e a permissão CREATE em GRANT ALL ON SCHEMA não são compatíveis com os esquemas externos do Amazon Redshift Spectrum. Para conceder o uso de tabelas externas em um esquema externo, conceda USAGE ON SCHEMA a usuários que precisam de acesso. Somente o proprietário de um esquema externo ou um superusuário tem permissão para criar tabelas externas no esquema externo. Para transferir a propriedade de um esquema externo, use ALTER SCHEMA para alterar o proprietário.

EXECUTE ON ALL FUNCTIONS IN SCHEMA schema_name

Concede as permissões especificadas em todas as funções no esquema de referência.

O Amazon Redshift não comporta instruções GRANT ou REVOKE para entradas pg_proc builtin definidas no namespace pg_catalog.

EXECUTE ON PROCEDURE procedure_name

Concede a permissão EXECUTE em um procedimento armazenado específico. Como os nomes de procedimento armazenado podem ser sobrecarregados, você deverá incluir a lista de argumentos para o procedimento. Para obter mais informações, consulte Nomeação de procedimentos armazenados.

EXECUTE ON ALL PROCEDURES IN SCHEMA schema_name

Concede as permissões especificadas em todos os procedimentos armazenados no esquema de referência.

USAGE ON LANGUAGE nome_linguagem

Concede a permissão USAGE em um idioma.

A permissão USAGE ON LANGUAGE é necessária para criar funções definidas pelo usuário (UDFs) executando o comando CREATE FUNCTION. Para ter mais informações, consulte Segurança e permissões de UDFs.

A permissão USAGE ON LANGUAGE é necessária para criar procedimentos armazenados executando o comando CREATE PROCEDURE. Para ter mais informações, consulte Segurança e privilégios para procedimentos armazenados .

Para UDFs Python, use plpythonu. Para UDFs SQL, use sql. Para procedimentos armazenados, use plpgsql.

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

Especifica o comando SQL para o qual a permissão é concedida. Você pode especificar ALL para conceder a permissão nas instruções COPY, UNLOAD, EXTERN FUNCTION e CREATE MODEL. Esta cláusula aplica-se apenas à concessão da permissão ASSUMEROLE.

ALTER

Concede a permissão ALTER aos usuários para adicionar ou remover objetos de uma unidade de compartilhamento de dados ou para definir a propriedade PUBLICACCESSIBLE. Para ter mais informações, consulte ALTER DATASHARE.

SHARE

Concede permissões a usuários e grupos de usuários para adicionar consumidores de dados a uma unidade de compartilhamento de dados. Essa permissão é necessária para permitir que o consumidor específico (conta ou namespace) acesse a unidade de compartilhamento de dados de seus clusters. O consumidor pode ser o mesmo ou de uma conta da AWS diferente, com o mesmo ou um namespace de cluster diferente, conforme especificado por um identificador globalmente exclusivo (GUID).

ON DATASHARE datashare_name

Concede as permissões especificadas na unidade de compartilhamento de dados de referência. Para obter informações sobre granularidade de controle de acesso de consumidor, consulte Compartilhamento de dados em diferentes níveis no Amazon Redshift.

USAGE

Quando USO é concedido a uma conta de consumidor ou namespace dentro da mesma conta, a conta de consumidor específica ou namespace dentro da conta pode acessar o datashare e os objetos do datashare de forma somente leitura.

TO NAMESPACE 'clusternamespace GUID'

Indica um namespace na mesma conta em que os consumidores podem receber as permissões especificadas para a unidade de compartilhamento de dados. Os namespaces usam um GUID alfanumérico de 128 bits.

TO ACCOUNT 'accountnumber' [ VIA DATA CATALOG ]

Indica o número de outra conta cujos consumidores podem receber as permissões especificadas para a unidade de compartilhamento de dados. Especificar “VIA DATA CATALOG” indica que você está concedendo o uso da unidade de compartilhamento de dados a uma conta do Lake Formation. Omitir esse parâmetro significa que você está concedendo uso a uma conta que possui o cluster.

ON DATABASE shared_database_name> [, ...]

Concede as permissões de uso especificadas no banco de dados especificado que é criado na unidade de compartilhamento de dados especificada.

ON SCHEMA shared_schema

Concede as permissões especificadas no esquema especificado que é criado na unidade de compartilhamento de dados especificada.

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

Especifica os objetos de banco de dados aos quais conceder permissão. Os parâmetros após IN definem o escopo da permissão concedida.

CREATE MODEL

Concede a permissão CREATE MODEL a usuários ou grupos de usuários específicos.

ON MODEL model_name

Concede a permissão EXECUTE em um modelo específico.

ACCESS CATALOG

Concede a permissão para exibir metadados relevantes de objetos aos quais a função tem acesso.

{ role } [, ...]

A função a ser concedida a outra função, um usuário ou PUBLIC.

PUBLIC representa um grupo que inclui sempre todos os usuários. As permissões de um usuário individual consistem na soma das permissões concedidas a PUBLIC, das permissões concedidas a todos os grupos aos quais o usuário pertence e de quaisquer permissões concedidas ao usuário individualmente.

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

Concede a função especificada a um usuário especificado com a WITH ADMIN OPTION, outra função ou PUBLIC.

A cláusula WITH ADMIN OPTION fornece as opções de administração para todas as funções concedidas a todos os beneficiários.

EXPLAIN RLS TO ROLE rolename

Concede permissão para explicar os filtros de política de segurança por linha de uma consulta no plano EXPLAIN para um perfil.

IGNORE RLS TO ROLE rolename

Concede permissão para ignorar políticas de segurança por linha para uma consulta a um perfil.

Para saber mais sobre as observações de uso de GRANT, consulte Observações de uso.

Para conferir exemplos de como usar GRANT, consulte Exemplos.