Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Exemplos

Modo de foco
Exemplos - Amazon Redshift

O exemplo a seguir concede o privilégio SELECT na tabela SALES ao usuário fred.

grant select on table sales to fred;

O exemplo a seguir concede o privilégio SELECT em todas as tabelas no esquema QA_TICKIT ao usuário fred.

grant select on all tables in schema qa_tickit to fred;

O exemplo a seguir concede todos os privilégios de esquema no esquema QA_TICKIT ao grupo de usuários QA_USERS. Os privilégios de esquema são CREATE e USAGE. USAGE permite que os usuários acessem os objetos no esquema, mas não concede privilégios como INSERT ou SELECT em tais objetos. Conceder privilégios em cada objeto separadamente.

create group qa_users; grant all on schema qa_tickit to group qa_users;

O exemplo a seguir concede todos os privilégios na tabela SALES no esquema QA_TICKIT a todos os usuários do grupo QA_USERS.

grant all on table qa_tickit.sales to group qa_users;

O exemplo a seguir concede todos os privilégios na tabela SALES no esquema QA_TICKIT a todos os usuários dos grupos QA_USERS e RO_USERS.

grant all on table qa_tickit.sales to group qa_users, group ro_users;

O exemplo a seguir concede o privilégio DROP na tabela SALES no esquema QA_TICKIT a todos os usuários no grupo QA_USERS.

grant drop on table qa_tickit.sales to group qa_users;>

A sequência de comandos a seguir mostra como o acesso a um esquema não concede privilégios a uma tabela no esquema.

create user schema_user in group qa_users password 'Abcd1234'; create schema qa_tickit; create table qa_tickit.test (col1 int); grant all on schema qa_tickit to schema_user; set session authorization schema_user; select current_user; current_user -------------- schema_user (1 row) select count(*) from qa_tickit.test; ERROR: permission denied for relation test [SQL State=42501] set session authorization dw_user; grant select on table qa_tickit.test to schema_user; set session authorization schema_user; select count(*) from qa_tickit.test; count ------- 0 (1 row)

A sequência de comandos a seguir mostra como o acesso a uma exibição não implica acesso às suas tabelas subjacentes. O usuário chamado VIEW_USER não pode selecionar da tabela DATE, embora todos os privilégios de VIEW_DATE tenham sido concedidos a ele.

create user view_user password 'Abcd1234'; create view view_date as select * from date; grant all on view_date to view_user; set session authorization view_user; select current_user; current_user -------------- view_user (1 row) select count(*) from view_date; count ------- 365 (1 row) select count(*) from date; ERROR: permission denied for relation date

O exemplo a seguir concede o privilégio SELECT nas colunas cust_phone e cust_name da tabela cust_profile ao usuário user1.

grant select(cust_name, cust_phone) on cust_profile to user1;

O exemplo a seguir concede o privilégio SELECT nas colunas cust_name e cust_phone, e o privilégio UPDATE na coluna cust_contact_preference da tabela cust_profile ao grupo sales_group.

grant select(cust_name, cust_phone), update(cust_contact_preference) on cust_profile to group sales_group;

O exemplo a seguir mostra o uso da palavra-chave ALL para conceder privilégios SELECT e UPDATE em três colunas da tabela cust_profile ao grupo sales_admin.

grant ALL(cust_name, cust_phone,cust_contact_preference) on cust_profile to group sales_admin;

O exemplo a seguir concede o privilégio SELECT na coluna cust_name da exibição cust_profile_vw ao usuário user2.

grant select(cust_name) on cust_profile_vw to user2;

Exemplos da concessão de acesso a unidades de compartilhamento de dados

Os exemplos a seguir mostram permissões de uso de datashare GRANT em um banco de dados específico ou esquema criado a partir de um datashare.

No exemplo a seguir, um administrador no lado do produtor concede a permissão USAGE na unidade de compartilhamento de dados salesshare ao namespace especificado.

GRANT USAGE ON DATASHARE salesshare TO NAMESPACE '13b8833d-17c6-4f16-8fe4-1a018f5ed00d';

No exemplo a seguir, um administrador no lado do consumidor concede a permissão USAGE no sales_db a Bob.

GRANT USAGE ON DATABASE sales_db TO Bob;

No exemplo a seguir, um administrador no lado do consumidor concede a permissão GRANT USAGE no esquema sales_schema à função Analyst_role. sales_schema é um esquema externo que aponta para sales_db.

GRANT USAGE ON SCHEMA sales_schema TO ROLE Analyst_role;

Neste ponto, Bob e Analyst_role podem ter acesso a todos os objetos do banco de dados em sales_schema e sales_db.

O exemplo a seguir mostra a concessão de permissão adicional no nível do objeto para objetos em um banco de dados compartilhado. Essas permissões extras só serão necessárias se o comando CREATE DATABASE usado para criar o banco de dados compartilhado usar a cláusula WITH PERMISSIONS. Se o comando CREATE DATABASE não usou WITH PERMISSIONS, a concessão de USAGE no banco de dados compartilhado concede acesso total a todos os objetos nesse banco de dados.

GRANT SELECT ON sales_db.sales_schema.tickit_sales_redshift to Bob;

Exemplos de concessão de permissões em escopo definido

O exemplo a seguir concede uso para todos os esquemas atuais e futuros no banco de dados Sales_db à função Sales.

GRANT USAGE FOR SCHEMAS IN DATABASE Sales_db TO ROLE Sales;

O exemplo a seguir concede a permissão SELECT para todas as tabelas atuais e futuras no banco de dados Sales_db ao usuário alice e também dá a alice a permissão para conceder permissões em escopo em tabelas em Sales_db a outros usuários.

GRANT SELECT FOR TABLES IN DATABASE Sales_db TO alice WITH GRANT OPTION;

O exemplo a seguir concede a permissão EXECUTE para funções no esquema Sales_schema ao usuário bob.

GRANT EXECUTE FOR FUNCTIONS IN SCHEMA Sales_schema TO bob;

O exemplo a seguir concede todas as permissões para todas as tabelas no esquema do ShareSchema do banco de dados ShareDb à função Sales. Ao especificar o esquema, você pode especificar o banco de dados do esquema usando o formato de duas partes database.schema.

GRANT ALL FOR TABLES IN SCHEMA ShareDb.ShareSchema TO ROLE Sales;

O exemplo a seguir é o mesmo do anterior. Você pode especificar o banco de dados usando a palavra-chave DATABASE, em vez de usar um formato de duas partes.

GRANT ALL FOR TABLES IN SCHEMA ShareSchema DATABASE ShareDb TO ROLE Sales;

Exemplos de concessão do privilégio ASSUMEROLE

Veja a seguir exemplos de concessão do privilégio ASSUMEROLE.

O exemplo a seguir mostra a instrução REVOKE que um superusuário executa uma vez no cluster para habilitar o uso do privilégio ASSUMEROLE para usuários e grupos. Em seguida, o superusuário concede o privilégio ASSUMEROLE aos usuários e grupos para os comandos apropriados. Para obter informações sobre como habilitar o uso do privilégio ASSUMEROLE para usuários e grupos, consulte Observações de uso para conceder a permissão ASSUMEROLE.

revoke assumerole on all from public for all;

O exemplo a seguir concede o privilégio ASSUMEROLE ao usuário reg_user1 para a função do IAM Redshift-S3-Read para executar operações COPY.

grant assumerole on 'arn:aws:iam::123456789012:role/Redshift-S3-Read' to reg_user1 for copy;

O exemplo a seguir concede o privilégio ASSUMEROLE ao usuário reg_user1 para a cadeia de função do IAM RoleA e RoleB para executar operações COPY.

grant assumerole on 'arn:aws:iam::123456789012:role/RoleA,arn:aws:iam::210987654321:role/RoleB' to reg_user1 for unload;

Veja a seguir um exemplo do comando UNLOAD usando a cadeia de função do IAM RoleA e RoleB.

unload ('select * from venue limit 10') to 's3://companyb/redshift/venue_pipe_' iam_role 'arn:aws:iam::123456789012:role/RoleA,arn:aws:iam::210987654321:role/RoleB';

O exemplo a seguir concede o privilégio ASSUMEROLE ao usuário reg_user1 para a função do IAM Redshift-Exfunc para criar funções externas.

grant assumerole on 'arn:aws:iam::123456789012:role/Redshift-Exfunc' to reg_user1 for external function;

O exemplo a seguir concede o privilégio ASSUMEROLE ao usuário reg_user1 para a função do IAM Redshift-model para criar modelos de Machine Learning.

grant assumerole on 'arn:aws:iam::123456789012:role/Redshift-ML' to reg_user1 for create model;

Exemplos de concessão do privilégio ROLE

O exemplo a seguir concede a função sample_role1 ao usuário user1.

CREATE ROLE sample_role1; GRANT ROLE sample_role1 TO user1;

O exemplo a seguir concede sample_role1 ao user1 com a WITH ADMIN OPTION, define a sessão atual para user1 e user1 concede sample_role1 ao user2.

GRANT ROLE sample_role1 TO user1 WITH ADMIN OPTION; SET SESSION AUTHORIZATION user1; GRANT ROLE sample_role1 TO user2;

O exemplo a seguir concede a função sample_role1 a sample_role2.

GRANT ROLE sample_role1 TO ROLE sample_role2;

O exemplo a seguir concede a função sample_role2 a sample_role3 e sample_role4. Em seguida, ele tenta conceder sample_role3 a sample_role1.

GRANT ROLE sample_role2 TO ROLE sample_role3; GRANT ROLE sample_role3 TO ROLE sample_role2; ERROR: cannot grant this role, a circular dependency was detected between these roles

O exemplo a seguir concede privilégios de sistema CREATE USER a sample_role1.

GRANT CREATE USER TO ROLE sample_role1;

O exemplo a seguir concede a função definida pelo sistema sys:dba a user1.

GRANT ROLE sys:dba TO user1;

O exemplo a seguir tenta conceder sample_role3 em uma dependência circular a sample_role2.

CREATE ROLE sample_role3; GRANT ROLE sample_role2 TO ROLE sample_role3; GRANT ROLE sample_role3 TO ROLE sample_role2; -- fail ERROR: cannot grant this role, a circular dependency was detected between these roles
PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.