View a markdown version of this page

CREATE RLS POLICY - Amazon Redshift

O Amazon Redshift deixará de oferecer suporte ao uso de UDFs em Python após 30 de junho de 2026. Começaremos a aplicar essa alteração em fases. Consulte mais informações sobre os detalhes do fim da vida útil do Python e as opções de migração na publicação do blog publicada em 30 de junho de 2025.

CREATE RLS POLICY

Cria uma nova política de segurança no nível da linha para fornecer acesso granular aos objetos do banco de dados.

Superusuários e usuários ou funções que têm a função sys:secadmin podem criar uma política.

Sintaxe

CREATE RLS POLICY { policy_name | database_name.policy_name } [ WITH (column_name data_type [, ...]) [ [AS] relation_alias ] ] USING ( using_predicate_exp )

Parâmetros

policy_name

O nome da política.

database_name

O nome do banco de dados de onde a política será criada. A política pode ser criada no banco de dados conectado ou em um banco de dados que aceite as permissões federadas do Amazon Redshift.

WITH (column_name data_type [, ...])

Especifica o column_name e data_type referenciada às colunas de tabelas às quais a política está anexada.

É possível omitir a cláusula WITH somente quando a política de RLS não fizer referência a nenhuma coluna de tabelas às quais a política está anexada.

AS relation_alias

Especifica um alias opcional para a tabela à qual a política de RLS será anexada.

USING ( using_predicate_exp )

Especifica um filtro que é aplicado à cláusula WHERE da consulta. O Amazon Redshift aplica um predicado de política antes dos predicados do usuário no nível da consulta. Por exemplo, current_user = ‘joe’ and price > 10 limita Joe a ver apenas registros com o preço superior a US$ 10.

Para o uso da CREATE RLS POLICY no Catálogo de Permissões Federadas do Amazon Redshift, consulte Gerenciar o controle de acesso com permissões federadas do Amazon Redshift.

Observações de uso

Ao trabalhar com a instrução CREATE RLS POLICY, observe o seguinte:

  • O Amazon Redshift é compatível com filtros que podem fazer parte de uma cláusula WHERE de uma consulta.

  • Todas as políticas anexadas a uma tabela devem ter sido criadas com o mesmo alias de tabela.

  • Você deve usar as instruções GRANT e REVOKE para conceder e revogar explicitamente permissões SELECT para políticas de RLS que fazem referência a tabelas de pesquisa. Uma tabela de pesquisa é um objeto de tabela usado dentro de uma definição de política. Para obter mais informações, consulte GRANT e REVOKE.

  • A segurança por linha do Amazon Redshift não é compatível com os seguintes tipos de objeto dentro de uma definição de política: tabelas de catálogo, relações entre bancos de dados, tabelas externas, visualizações regulares, visualizações de vinculação tardia, tabelas com políticas RLS ativadas e tabelas temporárias.

Exemplos

O exemplo a seguir cria uma política de RLS chamada policy_concerts. Essa política se aplica a uma coluna VARCHAR (10) chamada catgroup e define o filtro USING para exibir somente as linhas em que o valor de catgroup seja 'Concerts'.

CREATE RLS POLICY policy_concerts WITH (catgroup VARCHAR(10)) USING (catgroup = 'Concerts');

Para ver um exemplo completo de uso de políticas de RLS, consulte Exemplo completo de segurança em nível de linha.