Objetos e princípios dependentes de políticas
Para fornecer segurança a aplicações e evitar que objetos da política se tornem obsoletos ou inválidos, o Amazon Redshift não permite descartar ou alterar objetos referenciados por políticas de RLS.
O exemplo a seguir ilustra como a dependência de esquema está sendo monitorada.
-- The CREATE and ATTACH policy statements for `policy_events` references some -- target and lookup tables. -- Target tables are tickit_event_redshift and target_schema.target_event_table. -- Lookup table is tickit_sales_redshift. -- Policy `policy_events` has following dependencies: -- table tickit_sales_redshift column eventid, qtysold -- table tickit_event_redshift column eventid -- table target_event_table column eventid -- schema public and target_schema CREATE RLS POLICY policy_events WITH (eventid INTEGER) USING ( eventid IN (SELECT eventid FROM tickit_sales_redshift WHERE qtysold <3) ); ATTACH RLS POLICY policy_events ON tickit_event_redshift TO ROLE analyst; ATTACH RLS POLICY policy_events ON target_schema.target_event_table TO ROLE consumer;
Veja a seguir uma lista das dependências de objeto de esquema que o Amazon Redshift monitora para políticas de RLS.
-
Ao monitorar a dependência do objeto de esquema para a tabela de destino, o Amazon Redshift segue estas regras:
O Amazon Redshift separa a política de uma relação, usuário, função ou público quando você descarta uma tabela de destino.
Quando você renomeia um nome de tabela de destino, não há impacto nas políticas anexadas.
Não é possível descartar as colunas da tabela de políticas referenciada dentro da definição de política, a menos que você descarte ou desanexe a política. Isso também se aplica quando a opção CASCADE é especificada. É possível descartar outras colunas na tabela de destino.
Não é possível renomear as colunas referenciadas da tabela de destino. Para renomear as colunas referidas, desanexe a política primeiro. Isso também se aplica quando a opção CASCADE é especificada.
Não é possível alterar o tipo da coluna referenciada, mesmo quando você especifica a opção CASCADE.
Ao monitorar a dependência do objeto de esquema para a tabela de consulta, o Amazon Redshift segue estas regras:
Não é possível descartar uma tabela de pesquisa. Para descartar uma tabela de pesquisa, primeiro descarte a política na qual a tabela de pesquisa é referenciada.
Não é possível renomear uma tabela de pesquisa. Para renomear uma tabela de pesquisa, primeiro descarte a política na qual a tabela de pesquisa é referenciada. Isso também se aplica quando a opção CASCADE é especificada.
Não é possível descartar as colunas da tabela de pesquisa usadas na definição de política. Para descartar colunas de uma tabela de pesquisa usadas na definição da política, primeiro descarte a política na qual a tabela de pesquisa é referenciada. Isso também se aplica quando a opção CASCADE é especificada na instrução ALTER TABLE DROP COLUMN. É possível descartar outras colunas na tabela de consultas.
Não é possível renomear as colunas referidas da tabela de pesquisa. Para renomear colunas referenciadas, primeiro descarte a política na qual a tabela de pesquisa é referenciada. Isso também se aplica quando a opção CASCADE é especificada.
Não é possível alterar o tipo da coluna de referência.
Ao descartar um usuário ou uma função, o Amazon Redshift desanexa todas as políticas anexadas ao usuário ou à função automaticamente.
Quando você usa a opção CASCADE na instrução DROP SCHEMA, o Amazon Redshift também descarta as relações no esquema. Ele também descarta as relações em quaisquer outros esquemas que sejam dependentes das relações no esquema descartado. Para uma relação que seja uma tabela de pesquisa em uma política, o Amazon Redshift falhará no DROP SCHEMA DDL. Para todas as relações abandonadas pela instrução DROP SCHEMA, o Amazon Redshift desanexa todas as políticas anexadas a essas relações.
Só é possível descartar uma função de pesquisa (uma função que é referenciada dentro de uma definição de política) quando você também descarta a política. Isso também se aplica quando a opção CASCADE é especificada.
Quando uma política é anexada a uma tabela, o Amazon Redshift verifica se essa tabela é uma tabela de pesquisa em uma política diferente. Se esse for o caso, o Amazon Redshift não permitirá anexar uma política a essa tabela.
Ao criar uma política de RLS, o Amazon Redshift verifica se essa tabela é uma tabela de destino para qualquer outra política de RLS. Se esse for o caso, o Amazon Redshift não permitirá criar uma política nessa tabela.