Création d'un schéma - 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.

Création d'un schéma

Après avoir créé une base de données, vous pouvez créer un schéma dans la base de données actuelle. Un schéma est un espace de noms qui contient des objets de base de données nommés tels que des tables, des vues et des fonctions définies par l'utilisateur ()UDFs. Une base de données peut contenir un ou plusieurs schémas, et chaque schéma appartient à une seule base de données. Deux schémas peuvent avoir des objets différents qui partagent le même nom.

Vous pouvez créer plusieurs schémas dans la même base de données pour organiser les données comme vous le souhaitez ou pour regrouper vos données de manière fonctionnelle. Par exemple, vous pouvez créer un schéma pour stocker toutes vos données intermédiaires et un autre schéma pour stocker toutes les tables de reporting. Vous pouvez également créer différents schémas pour stocker des données pertinentes pour différents groupes professionnels qui se trouvent dans la même base de données. Chaque schéma peut stocker différents objets de base de données, tels que des tables, des vues et des fonctions définies par l'utilisateur (UDFs). De plus, vous pouvez créer des schémas avec la clause AUTHORIZATION. Cette clause donne la propriété à un utilisateur spécifié ou définit un quota sur la quantité maximale d’espace disque que le schéma spécifié peut utiliser.

Amazon Redshift crée automatiquement un schéma appelé public pour chaque nouvelle base de données. Lorsque vous ne spécifiez pas le nom du schéma lors de la création d’objets de base de données, les objets sont placés dans le schéma public.

Pour accéder à un objet dans un schéma, qualifiez l’objet en utilisant la notation schema_name.table_name. Le nom qualifié du schéma se compose du nom du schéma et du nom de la table séparés par un point. Par exemple, vous pouvez avoir un schéma sales qui possède une table price et un schéma inventory qui possède également une table price. Lorsque vous faites référence à la table price, vous devez la qualifier comme sales.price ou inventory.price.

L’exemple suivant crée un schéma nommé SALES pour l’utilisateur GUEST.

CREATE SCHEMA SALES AUTHORIZATION GUEST;

Pour plus d’informations sur davantage d’options de commande, consultez CREATE SCHEMA dans le Guide du développeur de la base de données Amazon Redshift.

Pour afficher la liste des schémas de votre base de données, exécutez l’instruction suivante.

select * from pg_namespace;

La sortie doit ressembler à ce qui suit :

nspname | nspowner | nspacl ----------------------+----------+-------------------------- sales | 100 | pg_toast | 1 | pg_internal | 1 | catalog_history | 1 | pg_temp_1 | 1 | pg_catalog | 1 | {rdsdb=UC/rdsdb,=U/rdsdb} public | 1 | {rdsdb=UC/rdsdb,=U/rdsdb} information_schema | 1 | {rdsdb=UC/rdsdb,=U/rdsdb}

Pour plus d’informations sur la façon d’interroger les tables de catalogue, consultez Interroger les tables de catalogue dans le Guide du développeur de la base de données Amazon Redshift.

Utilisez l’instruction GRANT pour octroyer des privilèges aux utilisateurs pour les schémas.

L'exemple suivant accorde à l'GUESTutilisateur le privilège de sélectionner des données dans toutes les tables ou vues du SALES schéma à l'aide d'une instruction SELECT.

GRANT SELECT ON ALL TABLES IN SCHEMA SALES TO GUEST;

L'exemple suivant accorde tous les privilèges disponibles en une seule fois à l'GUESTutilisateur.

GRANT ALL ON SCHEMA SALES TO GUEST;