CREATE RLS POLICY - Amazon Redshift

Amazon Redshift ne prendra plus en charge la création de nouvelles fonctions Python définies par l’utilisateur à compter du 1er novembre 2025. Si vous souhaitez utiliser des fonctions Python définies par l’utilisateur, créez-les avant cette date. Les fonctions Python définies par l’utilisateur existantes continueront de fonctionner normalement. Pour plus d’informations, consultez le billet de blog .

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 aux 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 dont la valeur catgroup est 'Concerts'.

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

Pour obtenir un exemple complet d’utilisation des politiques RLS, consultez Exemple de bout en bout de sécurité au niveau des lignes.