CREATE RLS POLICY - Amazon Redshift

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

CREATE RLS POLICY

Crée une nouvelle politique de sécurité au niveau des lignes pour fournir un accès précis aux objets de base de données.

Les super-utilisateurs, les utilisateurs ou les utilisateurs disposant du rôle sys:secadmin peuvent créer une stratégie.

Syntaxe

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

Paramètres

policy_name

Nom de la politique .

WITH (column_name data_type [, ...])

Spécifie column_name et data_type référencés aux colonnes des tables auxquelles la politique est attachée.

Vous pouvez omettre la clause WITH uniquement lorsque la politique RLS ne fait référence à aucune colonne des tables à laquelle la politique est attachée.

AS relation_alias

Spécifie un alias facultatif pour la table à laquelle la politique RLS sera attachée.

USING ( using_predicate_exp )

Spécifie un filtre qui est appliqué à la clause WHERE de la requête. Amazon Redshift applique un prédicat de politique avant les prédicats utilisateur au niveau de la requête. Par exemple, current_user = ‘joe’ and price > 10 permet à Joe de ne voir que les enregistrements dont le prix est supérieur à 10 $.

Notes d’utilisation

Lorsque vous utilisez l’instruction CREATE RLS POLICY, tenez compte des points suivants :

  • Amazon Redshift prend en charge les filtres qui peuvent faire partie de la clause WHERE d’une requête.

  • Toutes les politiques attachées à une table doivent avoir été créées avec le même alias de table.

  • Vous n’avez pas besoin de l’autorisation SELECT sur les tables de recherche. Lorsque vous créez une stratégie, Amazon Redshift accorde l’autorisation SELECT à la table de recherche pour la politique correspondante. Une table de recherche est un objet de table utilisé dans une définition de stratégie.

  • La sécurité au niveau des lignes d’Amazon Redshift ne prend pas en charge les types d’objets suivant dans une définition de politique : les tables de catalogue, les relations entre bases de données, les tables externes, les vues régulières, les vues à liaison tardive, les tables avec des politiques RLS activées et les tables temporaires.

Exemples

Les instructions SQL suivantes créent les tables, les utilisateurs et les rôles pour l’exemple CREATE RLS POLICY.

-- Create users and roles reference in the policy statements. CREATE ROLE analyst; CREATE ROLE consumer; CREATE USER bob WITH PASSWORD 'Name_is_bob_1'; CREATE USER alice WITH PASSWORD 'Name_is_alice_1'; CREATE USER joe WITH PASSWORD 'Name_is_joe_1'; GRANT ROLE sys:secadmin TO bob; GRANT ROLE analyst TO alice; GRANT ROLE consumer TO joe; GRANT ALL ON TABLE tickit_category_redshift TO PUBLIC;

L’exemple suivant crée une politique appelée policy_concerts.

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