

 Amazon Redshift ne prendra plus en charge la création de nouveaux Python à UDFs partir du patch 198. UDFs Le Python existant continuera de fonctionner jusqu'au 30 juin 2026. Pour plus d’informations, consultez le [ billet de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

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éer un schéma
<a name="t_creating_schema"></a>

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](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_SCHEMA.html) 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](https://docs.aws.amazon.com/redshift/latest/dg/c_join_PG.html) 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 octroie à l’utilisateur `GUEST` le privilège de sélectionner des données dans toutes les tables ou vues dans le schéma `SALES` à l’aide d’une instruction SELECT. 

```
GRANT SELECT ON ALL TABLES IN SCHEMA SALES TO GUEST;
```

L’exemple suivant octroie tous les privilèges disponibles en une seule fois à l’utilisateur `GUEST`.

```
GRANT ALL ON SCHEMA SALES TO GUEST;
```