

 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/). 

# Esquemas
<a name="r_Schemas_and_tables"></a>

Um banco de dados contém um ou mais esquemas nomeados. Cada esquema em um banco de dados contém tabelas e outros tipos de objetos nomeados. Por padrão, um banco de dados tem um único esquema, chamado PUBLIC. Você pode usar esquemas para agrupar objetos de banco de dados sob um mesmo nome. Os esquemas são semelhantes a diretórios de sistema de arquivos, exceto pelo fato de que esquemas não podem ser aninhados.

É possível usar nomes de objeto de banco de dados idênticos em esquemas diferentes no mesmo banco de dados sem conflito. Por exemplo, MY\$1SCHEMA e YOUR\$1SCHEMA podem conter uma tabela chamada MYTABLE. Os usuários com as permissões necessáriss podem acessar objetos em vários esquemas em um banco de dados.

Por padrão, um objeto é criado dentro do primeiro esquema no caminho de pesquisa do banco de dados. Para obter informações, consulte [Caminho de pesquisa](#c_Search_path) posteriormente nesta seção.

Os esquemas podem ajudar em problemas de organização e simultaneidade em um ambiente de vários usuários das seguintes maneiras:
+ Para permitir que muitos desenvolvedores trabalhem no mesmo banco de dados sem interferência entre si.
+ Para organizar objetos de banco de dados em grupos lógicos para torná-los mais gerenciáveis.
+ Para permitir que as aplicações tenham a possibilidade de colocar objetos em esquemas separados, de maneira que os nomes não colidam com nomes de objetos usados por outros aplicativos.

## Caminho de pesquisa
<a name="c_Search_path"></a>

O caminho de pesquisa é definido no parâmetro search\$1path com uma lista de nomes de esquema separados por vírgulas. O caminho de pesquisa especifica a ordem na qual os esquemas são pesquisados quando um objeto, como uma tabela ou uma função, é referenciado por um nome simples que não inclui um qualificador de esquema.

Se for criado sem especificar um esquema de destino, o objeto será adicionado ao primeiro esquema listado no caminho de pesquisa. Quando houver objetos com nomes idênticos em esquemas diferentes, um nome de objeto que não especificar um esquema irá se referir ao primeiro esquema no caminho de pesquisa que contenha um objeto com esse nome.

Para alterar o esquema padrão da sessão atual, use o comando [SET](r_SET.md).

Para obter mais informações, consulte a descrição [search\$1path](r_search_path.md) na Referência de configuração.

# Criar, alterar e excluir esquemas
<a name="r_Schemas_and_tables-creating-altering-and-deleting-schemas"></a>

Qualquer usuário pode criar esquemas e alterar ou descartar esquemas próprios.

Você pode realizar as seguintes ações:
+ Para criar um esquema, use o comando [CREATE SCHEMA](r_CREATE_SCHEMA.md).
+ Para alterar o proprietário de um esquema, use o comando [ALTER SCHEMA](r_ALTER_SCHEMA.md).
+ Para excluir um esquema e os objetos, use o comando [DROP SCHEMA](r_DROP_SCHEMA.md).
+ Para criar uma tabela dentro de um esquema, crie a tabela com o formato *nome\$1do\$1esquema.nome\$1da\$1tabela.* 

Para exibir uma lista de todos os esquemas, consulte a tabela de catálogo do sistema PG\$1NAMESPACE:

```
select * from pg_namespace;
```

Para exibir uma lista de tabelas que pertençam a um esquema, consulte a tabela de catálogo do sistema PG\$1TABLE\$1DEF. Por exemplo, a consulta a seguir retorna uma lista de tabelas no esquema PG\$1CATALOG.

```
select distinct(tablename) from pg_table_def
where schemaname = 'pg_catalog';
```

# Permissões baseadas em esquemas
<a name="r_Schemas_and_tables-schema-based-privileges"></a>

 As permissões baseadas em esquema são determinadas pelo proprietário do esquema: 
+ Por padrão, todos os usuários têm permissões CREATE e USAGE no esquema PUBLIC de um banco de dados. Para impedir que usuários criem objetos no esquema PUBLIC de um banco de dados, use o comando [REVOKE](r_REVOKE.md) para remover essa permissão.
+ A menos que recebam a permissão USAGE pelo proprietário do objeto, os usuários não podem acessar objetos em esquemas que não possuam. 
+ Se tiverem concedido a permissão CREATE a um esquema criado por outro usuário, os usuários poderão criar objetos nesse esquema.