enable_case_sensitive_identifier - 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.

enable_case_sensitive_identifier

Valeurs (par défaut en gras)

true, false

Description

Valeur de configuration qui détermine si les identifiants de nom de bases de données, de tables et de colonnes sont sensibles à la casse. La casse des identifiants de nom est conservée lorsqu'ils sont entre guillemets. Lorsque vous définissez enable_case_sensitive_identifier sur true, la casse des identifiants de nom est conservée. Lorsque vous définissez enable_case_sensitive_identifier sur false, la casse des identifiants de nom n'est pas conservée.

La casse d'un nom d'utilisateur entre guillemets est toujours préservée, quel que soit le paramètre de l'option de configuration enable_case_sensitive_identifier.

Exemples

L'exemple suivant montre comment créer et utiliser des identifiants sensibles à la casse pour le nom de la table et de la colonne.

-- To create and use case sensitive identifiers SET enable_case_sensitive_identifier TO true; -- Create tables and columns with case sensitive identifiers CREATE TABLE "MixedCasedTable" ("MixedCasedColumn" int); CREATE TABLE MixedCasedTable (MixedCasedColumn int); -- Now query with case sensitive identifiers SELECT "MixedCasedColumn" FROM "MixedCasedTable"; MixedCasedColumn ------------------ (0 rows) SELECT MixedCasedColumn FROM MixedCasedTable; mixedcasedcolumn ------------------ (0 rows)

L'exemple suivant montre quand la casse des identifiants n'est pas conservée.

-- To not use case sensitive identifiers RESET enable_case_sensitive_identifier; -- Mixed case identifiers are lowercased CREATE TABLE "MixedCasedTable2" ("MixedCasedColumn" int); CREATE TABLE MixedCasedTable2 (MixedCasedColumn int); ERROR: Relation "mixedcasedtable2" already exists SELECT "MixedCasedColumn" FROM "MixedCasedTable2"; mixedcasedcolumn ------------------ (0 rows) SELECT MixedCasedColumn FROM MixedCasedTable2; mixedcasedcolumn ------------------ (0 rows)

Notes d’utilisation

  • Si vous utilisez l'actualisation automatique pour les vues matérialisées, nous vous recommandons de définir la valeur enable_case_sensitive_identifier dans le groupe de paramètres de votre cluster ou de votre groupe de travail. Cela permet de garantir que enable_case_sensitive_identifier reste constant lorsque vos vues matérialisées sont actualisées. Pour plus d'informations sur l'actualisation automatique des vues matérialisées, consultez Actualisation d’une vue matérialisée. Pour plus d'informations sur la définition des valeurs de configuration dans les groupes de paramètres, reportez-vous à Groupes de paramètres Amazon Redshift dans le Guide de gestion Amazon Redshift.

  • Si vous utilisez des fonctionnalités de sécurité au niveau des lignes ou de masquage des données dynamiques, nous vous recommandons de définir la valeur enable_case_sensitive_identifier dans le groupe de paramètres de votre cluster ou groupe de travail. Cela garantit que enable_case_sensitive_identifier reste constant tout au long de la création et de l'attachement d'une politique, puis de l'interrogation d'une relation à laquelle une politique est appliquée. Pour plus d'informations sur la sécurité au niveau des lignes, consultez Sécurité au niveau des lignes. Pour plus d'informations sur le masquage des données dynamiques, consultez Masquage dynamique des données.

  • Lorsque vous définissez enable_case_sensitive_identifier sur on et que vous créez une table, vous pouvez définir des noms de colonne sensibles à la casse. Lorsque vous définissez enable_case_sensitive_identifier sur off et que vous interrogez la table, les noms des colonnes sont en minuscules. Cela peut produire des résultats de requête différents de ceux obtenus lorsque enable_case_sensitive_identifier est défini sur on. Prenez l’exemple suivant :

    SET enable_case_sensitive_identifier TO on; --Amazon Redshift preserves case for column names and other identifiers. --Create a table with two columns that are identical except for the case. CREATE TABLE t ("c" int, "C" int); INSERT INTO t VALUES (1, 2); SELECT * FROM t; c | C ---+--- 1 | 2 (1 row) SET enable_case_sensitive_identifier TO off; --Amazon Redshift no longer preserves case for column names and other identifiers. SELECT * FROM t; c | c ---+--- 1 | 1 (1 row)
  • Nous recommandons aux utilisateurs standard interrogeant des tables associées à un masquage dynamique des données ou à des politiques de sécurité au niveau des lignes d'utiliser le paramètre enable_case_sensitive_identifier par défaut. Pour plus d’informations sur la sécurité au niveau des lignes, consultez Sécurité au niveau des lignes. Pour plus d’informations sur le masquage dynamique des données, consultez Masquage dynamique des données.