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 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;