CREATE RLS POLICY - Amazon Redshift

O Amazon Redshift não permitirá mais a criação de funções definidas pelo usuário (UDFs) do Python a partir de 1.º de novembro de 2025. Se quiser usar UDFs do Python, você deve criá-las antes dessa data. As UDFs do Python existentes continuarão a funcionar normalmente. Para ter mais informações, consulte a publicação de blog .

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 [ WITH (column_name data_type [, ...]) [ [AS] relation_alias ] ] USING ( using_predicate_exp )

Parâmetros

policy_name

O nome da política.

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.

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 .