Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Central de ajuda/ GaussDB(DWS)/ Guia de gerenciamento/ Gerenciamento de clusters lógicos/ Tutorial: dividir um novo cluster físico em clusters lógicos
Atualizado em 2024-08-19 GMT+08:00

Tutorial: dividir um novo cluster físico em clusters lógicos

Cenário

Esta seção descreve como dividir um novo cluster físico de seis nós (sem dados de serviço) em dois clusters lógicos. Se o cluster físico já tiver dados de serviço, execute operações consultando Tutorial: converter um cluster físico que contém dados em um cluster lógico.

Pré-requisitos

Crie um cluster de seis nós. Para mais detalhes, consulte Criação de um cluster do GaussDB(DWS) 2.0.

Dividir um cluster em clusters lógicos

  1. Na página Cluster Management, clique no nome de um cluster para acessar a página de detalhes do cluster. No painel de navegação, escolha Logical Clusters.
  2. Clique em Add Logical Cluster no canto superior direito, selecione um anel de host (três nós) à direita, adicione-o à lista à esquerda, insira o nome de cluster lógico lc1 e clique em OK.

    Após cerca de 2 minutos, o cluster lógico é adicionado.

  3. Repita as etapas anteriores para criar o segundo cluster lógico lc2.

Criar clusters lógicos, associá-los a usuários e consultar dados em clusters lógicos

  1. Conecte-se ao banco de dados como administrador do sistema dbadmin e execute a seguinte instrução SQL para verificar se o cluster lógico foi criado:

    1
    SELECT group_name FROM PGXC_GROUP;
    

  2. Crie os usuários u1 e u2 e associe-os aos clusters lógicos lc1 e lc2, respectivamente.

    1
    2
    CREATE USER u1  NODE GROUP "lc1" password '{password}';
    CREATE USER u2  NODE GROUP "lc2" password '{password}';
    

  3. Alterne para o usuário u1, crie a tabela t1 e insira dados na tabela.

    1
    2
    3
    SET ROLE u1 PASSWORD '{password}';
    CREATE TABLE u1.t1 (id int);
    INSERT INTO u1.t1 VALUES (1),(2);
    

  4. Alterne para o usuário u2, crie a tabela t2 e insira dados na tabela.

    1
    2
    3
    SET ROLE u2 PASSWORD '{password}';
    CREATE TABLE u2.t2 (id int);
    INSERT INTO u2.t2 VALUES (1),(2);
    

  5. Consulte a tabela u1.t1 como o usuário u2. A saída do comando indica que o usuário não tem a permissão.

    1
    SELECT * FROM u1.t1;
    

  6. Volte para o administrador do sistema dbadmin e consulte as tabelas u1.t1 e u2.t2, que são criadas nos clusters lc1 e lc2, respectivamente, correspondentes a dois serviços. Desta forma, os dados são isolados com base em clusters lógicos.

    1
    2
    3
    SET ROLE dbadmin PASSWORD '{password}';
    SELECT p.oid,relname,pgroup,nodeoids FROM pg_class p LEFT JOIN pgxc_class pg ON p.oid = pg.pcrelid WHERE p.relname = 't1';
    SELECT p.oid,relname,pgroup,nodeoids FROM pg_class p LEFT JOIN pgxc_class pg ON p.oid = pg.pcrelid WHERE p.relname = 't2';
    

  7. Conceda ao usuário u2 as permissões para acessar o cluster lógico lc1, esquema u1 e tabela u1.t1.

    1
    2
    3
    GRANT usage ON NODE GROUP lc1 TO u2;
    GRANT usage ON SCHEMA u1 TO u2;
    GRANT select ON TABLE u1.t1 TO u2;
    

    Clusters lógicos implementam o isolamento de permissão (por grupos de nós) com base em clusters físicos. Para permitir que um usuário acesse dados em clusters lógicos, é necessário conceder ao cluster lógico (camada de grupo de nós) permissões, permissões de esquema e permissões de tabela ao usuário em sequência. Se nenhuma permissão de cluster lógico for concedida, a mensagem de erro "permission denied for node group xx" será exibida.

  8. Alterne para o usuário u2 e consulte a tabela u1.t1. A consulta foi bem-sucedida. O cluster lógico implementa o isolamento de dados e permite o acesso interlógico ao cluster lógico após a autorização do usuário.

    1
    2
    SET ROLE u2 PASSWORD '{password}';
    SELECT * FROM u1.t1;