Tarefa 3: Criar um esquema - Amazon Redshift

Tarefa 3: Criar um esquema

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 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 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 exibições no SALESCHEMA usando uma instruçã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;