Sélectionner vos préférences de cookies

Nous utilisons des cookies essentiels et des outils similaires qui sont nécessaires au fonctionnement de notre site et à la fourniture de nos services. Nous utilisons des cookies de performance pour collecter des statistiques anonymes afin de comprendre comment les clients utilisent notre site et d’apporter des améliorations. Les cookies essentiels ne peuvent pas être désactivés, mais vous pouvez cliquer sur « Personnaliser » ou « Refuser » pour refuser les cookies de performance.

Si vous êtes d’accord, AWS et les tiers approuvés utiliseront également des cookies pour fournir des fonctionnalités utiles au site, mémoriser vos préférences et afficher du contenu pertinent, y compris des publicités pertinentes. Pour accepter ou refuser tous les cookies non essentiels, cliquez sur « Accepter » ou « Refuser ». Pour effectuer des choix plus détaillés, cliquez sur « Personnaliser ».

Bonnes pratiques pour la performance de la sécurité RLS

Mode de mise au point
Bonnes pratiques pour la performance de la sécurité RLS - 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.

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.

Voici les bonnes pratiques pour garantir de meilleures performances d’Amazon Redshift sur les tables protégées par RLS.

Sécurité des opérateurs et des fonctions

Lors de l’interrogation de tables protégées par RLS, l’utilisation de certains opérateurs ou de certaines fonctions peut entraîner une dégradation des performances. Amazon Redshift classe les opérateurs et les fonctions comme sécurisés ou non sécurisés pour interroger les tables protégées par RLS. Une fonction ou un opérateur est classé comme étant sécurisé par RLS lorsqu’il ne présente aucun effet secondaire observable en fonction des entrées. En particulier, une fonction ou un opérateur sécurisé par RLS ne peut pas correspondre à l’un des cas suivants :

  • Fournit une valeur d’entrée, ou toute valeur qui dépend de la valeur d’entrée, avec ou sans message d’erreur.

  • Echoue ou renvoie des erreurs qui dépendent de la valeur d’entrée.

Les opérateurs non sécurisés par RLS comprennent :

  • Les opérateurs arithmétiques — +, -, /, *, %.

  • Les opérateurs de texte – LIKE et SIMILAR TO.

  • Les opérateurs de distribution.

  • UDFs.

Utilisez l’instruction SELECT suivante pour vérifier la sécurité des opérateurs et des fonctions.

SELECT proname, proc_is_rls_safe(oid) FROM pg_proc;

Amazon Redshift impose des restrictions sur l’ordre d’évaluation des prédicats de l’utilisateur contenant des opérateurs et des fonctions non sécurisés par RLS lors de la planification de requêtes sur des tables protégées par RLS. Les requêtes faisant référence à des opérateurs ou des fonctions non sécurisés par RLS peuvent entraîner une dégradation des performances lors de l’interrogation de tables protégées par RLS. Les performances peuvent se dégrader de manière significative lorsqu’Amazon Redshift ne parvient pas à déléguer les prédicats non sécurisés par RLS aux analyses de la table de base pour tirer parti des clés de tri. Pour de meilleures performances, évitez les requêtes utilisant des prédicats non sécurisés par RLS qui tirent parti d’une clé de tri. Pour vérifier qu’Amazon Redshift est capable de déléguer des opérateurs et des fonctions, vous pouvez utiliser des instructions EXPLAIN en association avec l’autorisation système EXPLAIN RLS.

Mise en cache du résultat

Pour raccourcir le temps d’exécution des requêtes et améliorer les performances du système, Amazon Redshift met en cache les résultats de certains types de requêtes dans la mémoire du nœud principal.

Amazon Redshift utilise les résultats mis en cache pour une nouvelle requête analysant les tables protégées par RLS si l’ensemble des conditions pour les tables non protégées et les éléments suivants sont satisfaits :

  • Les tables ou les vues incluses dans la politique n’ont pas été modifiées.

  • La politique n’utilise pas une fonction qui nécessite une évaluation à chaque exécution telle que GETDATE ou CURRENT_USER.

Pour de meilleures performances, évitez d’utiliser des prédicats de politique qui ne satisfont pas les conditions ci-dessus.

Pour plus d’informations sur la mise en cache des résultats dans Amazon Redshift, consultez Mise en cache du résultat .

politiques complexes

Pour de meilleures performances, évitez d’utiliser des politiques complexes avec des sous-requêtes qui rejoignent plusieurs tables.

Rubrique suivante :

End-to-end exemple

Rubrique précédente :

Considérations et restrictions
ConfidentialitéConditions d'utilisation du sitePréférences de cookies
© 2025, Amazon Web Services, Inc. ou ses affiliés. Tous droits réservés.