CREATE RLS POLICY - Amazon Redshift

Amazon Redshift ne prendra plus en charge la création de nouveaux Python UDFs à compter du 1er novembre 2025. Si vous souhaitez utiliser Python UDFs, créez la version UDFs antérieure à cette date. Le Python existant UDFs continuera à fonctionner normalement. Pour plus d'informations, consultez le billet de blog.

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 devez utiliser les instructions GRANT et REVOKE pour accorder et révoquer explicitement les autorisations SELECT sur les politiques RLS qui font référence à des tables de recherche. Une table de recherche est un objet de table utilisé dans une définition de stratégie. Pour plus d’informations, consultez GRANT et REVOKE.

  • 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

L'exemple suivant crée une politique RLS appelée policy_concerts. Cette politique s'applique à une colonne VARCHAR (10) appelée catgroup et définit le filtre USING pour qu'il renvoie uniquement les lignes contenant la valeur de catgroup. 'Concerts'

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

Pour un end-to-end exemple d'utilisation des politiques RLS, voirExemple de sécurité au niveau des lignes end-to-end.