

 O Amazon Redshift não permitirá mais a criação de UDFs do Python a partir do Patch 198. As UDFs do Python existentes continuarão a funcionar normalmente até 30 de junho de 2026. Para ter mais informações, consulte a [publicação de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# Criar um esquema
<a name="t_creating_schema"></a>

Depois de criar um novo banco de dados, você pode criar um novo esquema no banco de dados atual. Um *esquema* um namespace que contém objetos nomeados de banco de dados, como tabelas, exibições e funções definidas pelo usuário (UDFs). Um banco de dados pode conter um ou vários esquemas, e cada esquema pertence a apenas um banco de dados. Dois esquemas podem ter objetos diferentes que compartilham o mesmo nome.

Você pode criar vários esquemas no mesmo banco de dados para organizar dados da maneira que você deseja ou agrupar seus dados funcionalmente. Por exemplo, você pode criar um esquema para armazenar todos os dados de preparação e outro esquema para armazenar todas as tabelas de relatórios. Você também pode criar esquemas diferentes para armazenar dados relevantes para diferentes grupos de negócios que estão no mesmo banco de dados. Cada esquema pode armazenar objetos diferentes de banco de dados, como tabelas, exibições e funções definidas pelo usuário (UDFs). Além disso, você pode criar esquemas com a cláusula AUTHORIZATION. Esta cláusula fornece propriedade a um usuário especificado ou define uma cota na quantidade máxima de espaço em disco que o esquema especificado pode usar. 

O Amazon Redshift cria automaticamente um esquema chamado `public` para cada novo banco de dados. Quando você não especifica o nome do esquema ao criar objetos de banco de dados, os objetos entram no esquema `public`.

Para acessar um objeto em um esquema, qualifique o objeto usando a notação `schema_name.table_name`. O nome qualificado do esquema consiste no nome do esquema e no nome da tabela separados por um ponto. Por exemplo, você pode ter um esquema `sales` que tem uma tabela `price` e um esquema `inventory` que também tem uma tabela `price`. Quando você se refere à tabela `price`, você deve qualificá-la como `sales.price` ou `inventory.price`.

O exemplo a seguir cria um esquema chamado **SALES** para o usuário `GUEST`.

```
CREATE SCHEMA SALES AUTHORIZATION GUEST;
```

Para obter informações sobre mais opções de comando, consulte [CREATE SCHEMA](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_SCHEMA.html) no *Guia do desenvolvedor de banco de dados do Amazon Redshift*.

Para visualizar a lista de esquemas em seu banco de dados, execute o seguinte comando.

```
select * from pg_namespace;
```

A saída deve ser semelhante à seguinte.

```
  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}
```

Para obter mais informações sobre como consultar tabelas de catálogo, consulte [Consultar tabelas de catálogo](https://docs.aws.amazon.com/redshift/latest/dg/c_join_PG.html) no *Guia do desenvolvedor de banco de dados do Amazon Redshift*.

Use a instrução GRANT para dar permissões aos usuários para os esquemas.

O exemplo a seguir concede privilégios ao usuário `GUEST` para selecionar dados de todas as tabelas ou visualizações no esquema `SALES` usando uma declaração SELECT. 

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

O exemplo a seguir concede todos os privilégios disponíveis de uma vez ao usuário `GUEST`.

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