Use as instruções SQL deste tópico para gerenciar o acesso a virtual warehouses: visualize quais usuários têm acesso, conceda ou revogue permissões, defina virtual warehouses padrão e encerre conexões ativas.
Por padrão, superusuários têm acesso a todas as virtual warehouses de uma instância. As instruções deste tópico aplicam-se apenas a contas que não são de superusuário.
Pré-requisitos
Antes de começar, certifique-se de que:
Sua instância do Hologres esteja na versão V2.0.4 ou posterior. Caso contrário, atualize a instância no console do Hologres (consulte a seção "Manual upgrade" em Atualizações de instância) ou entre no grupo do DingTalk para obter suporte técnico (consulte Como obter mais suporte online?).
Você tenha ingressado no grupo do DingTalk do Hologres e solicitado as configurações de background necessárias.
Configure o acesso a warehouse para um usuário
As etapas a seguir demonstram um fluxo de trabalho típico de ponta a ponta para conceder acesso a uma virtual warehouse a um novo usuário. Também é possível execute instruções individuais das seções abaixo conforme necessário.
Etapa 1: Confirme quais usuários já possuem acesso.
SELECT * FROM hologres.hg_warehouse_users;
Etapa 2: Conceda ao usuário acesso a uma virtual warehouse. Isso permite que o usuário direcione consultas e execute workloads nessa warehouse.
CALL hg_grant_warehouse_access_privilege ('analytics_wh','"BASIC$user1"');
Etapa 3: Opcionalmente, defina essa warehouse como padrão para o usuário, de modo que as consultas dele sejam executadas nela automaticamente.
CALL hg_set_user_default_warehouse ('"BASIC$user1"','analytics_wh');
Visualize permissões de acesso em todas as virtual warehouses
Consulte a view de sistema hg_warehouse_users para verificar quais usuários têm acesso a quais virtual warehouses.
SELECT * FROM hologres.hg_warehouse_users;
Para filtrar resultados — por exemplo, para ver todas as warehouses às quais um usuário específico tem acesso — adicione uma cláusula WHERE:
SELECT * FROM hologres.hg_warehouse_users WHERE username = 'BASIC$user1';
Campos
|
Campo |
Tipo de dados |
Descrição |
Exemplo |
|
|
TEXT |
Nome da virtual warehouse |
|
|
|
INTEGER |
ID exclusivo da virtual warehouse |
|
|
|
TEXT |
Nome de um usuário com acesso à virtual warehouse |
|
Visualize virtual warehouses padrão de todos os usuários
Consulte a view de sistema hg_user_default_warehouse para visualize a virtual warehouse padrão de cada usuário. Cada usuário pode ter, no máximo, uma virtual warehouse padrão.
SELECT * FROM hologres.hg_user_default_warehouse;
Campos
|
Campo |
Tipo de dados |
Descrição |
Exemplo |
|
|
TEXT |
Nome da virtual warehouse |
|
|
|
INTEGER |
ID exclusivo da virtual warehouse |
|
|
|
TEXT |
Nome do usuário |
|
Defina uma virtual warehouse padrão para uma instância
Chame hg_set_default_warehouse para defina a virtual warehouse padrão no nível da instância. Todos os usuários da instância obtêm acesso automaticamente a essa warehouse.
CALL hg_set_default_warehouse ('<warehouse_name>');
Parâmetros
|
Parâmetro |
Tipo de dados |
Descrição |
|
|
TEXT |
Nome da virtual warehouse a ser definida como padrão da instância |
Exemplo: Defina analytics_wh como a virtual warehouse padrão da instância.
CALL hg_set_default_warehouse ('analytics_wh');
Conceder acesso a uma virtual warehouse
Chame hg_grant_warehouse_access_privilege para dar acesso a uma virtual warehouse a um usuário específico. Após a concessão, o usuário poderá direcionar consultas e executar workloads nessa warehouse.
CALL hg_grant_warehouse_access_privilege ('<warehouse_name>','"<user_name>"');
Parâmetros
|
Parâmetro |
Tipo de dados |
Descrição |
|
|
TEXT |
Nome da virtual warehouse para a qual o acesso será concedido |
|
|
TEXT |
Conta de usuário que receberá o acesso. Formato de usuário RAM: |
Exemplo: Conceda a BASIC$user1 acesso a analytics_wh.
CALL hg_grant_warehouse_access_privilege ('analytics_wh','"BASIC$user1"');
Revogar acesso a uma virtual warehouse
Chame hg_revoke_warehouse_access_privilege para remover o acesso de um usuário a uma virtual warehouse.
CALL hg_revoke_warehouse_access_privilege ('<warehouse_name>','"<user_name>"');
Parâmetros
|
Parâmetro |
Tipo de dados |
Descrição |
|
|
TEXT |
Nome da virtual warehouse da qual o acesso será revogado |
|
|
TEXT |
Conta de usuário cujo acesso será revogado. Formato de usuário RAM: |
Exemplo: Revogue o acesso de BASIC$user1 a analytics_wh.
CALL hg_revoke_warehouse_access_privilege ('analytics_wh','"BASIC$user1"');
Defina uma virtual warehouse padrão para um usuário
Defina ou remova a virtual warehouse padrão individual de um usuário. Quando um usuário possui uma virtual warehouse padrão configurada, as consultas são executadas nessa warehouse, a menos que ele especifique outra.
Defina uma virtual warehouse padrão:
CALL hg_set_user_default_warehouse ('"<user_name>"','<warehouse_name>');
Remover a virtual warehouse padrão de um usuário:
CALL hg_reset_user_default_warehouse ('"<user_name>"');
Parâmetros
|
Parâmetro |
Tipo de dados |
Descrição |
|
|
TEXT |
Conta de usuário a ser configurada. Formato de usuário RAM: |
|
|
TEXT |
Nome da virtual warehouse a ser definida como padrão do usuário |
Exemplo: Defina analytics_wh como a virtual warehouse padrão para BASIC$user1.
CALL hg_set_user_default_warehouse ('"BASIC$user1"','analytics_wh');
Encerrar conexões com virtual warehouses
Chame hg_kill_unprivileged_warehouse_connections para desconectar contas que não são de superusuário de todas as virtual warehouses da instância. Apenas superusuários podem execute esta instrução, e ela não afeta as conexões de superusuário.
SELECT hg_kill_unprivileged_warehouse_connections();