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)/ Perguntas frequentes/ Conta, senha e permissão/ Como criar um usuário somente leitura do banco de dados?
Atualizado em 2024-05-09 GMT+08:00

Como criar um usuário somente leitura do banco de dados?

Cenário

No desenvolvimento de serviços, os administradores de banco de dados usam esquemas para classificar dados. Por exemplo, no setor financeiro, os dados de passivo pertencem ao esquema s1, e os dados de ativos pertencem ao esquema s2.

Agora você precisa criar um usuário somente leitura user1 no banco de dados. O usuário pode acessar todas as tabelas (incluindo novas tabelas a serem criadas no futuro) no esquema s1 para leitura diária, mas não pode inserir, modificar ou excluir dados.

Princípios

O DWS fornece gerenciamento de usuários baseado em funções. Você precisa criar uma função somente leitura role1 e conceder a função ao user1. Para obter detalhes, consulte Controle de acesso baseado em função.

Procedimento

  1. Conecte-se ao banco de dados do DWS como usuário dbadmin.
  2. Execute a seguinte instrução SQL para criar a função role1:

    1
    CREATE ROLE role1 PASSWORD disable;
    

  3. Execute a seguinte instrução SQL para conceder permissões à role1:

    1
    2
    3
    The GRANT usage ON SCHEMA s1 TO role1; -- grants the access permission to schema s1.
    GRANT select ON ALL TABLES IN SCHEMA s1 TO role1; -- grants the query permission on all tables in schema s1.
    ALTER DEFAULT PRIVILEGES FOR USER tom IN SCHEMA s1 GRANT select ON TABLES TO role1; -- grants schema s1 the permission to create tables. tom is the owner of schema s1.
    

  4. Execute a seguinte instrução SQL para conceder a função role1 ao usuário atual user1:

    1
    GRANT role1 TO user1;
    

  1. Leia todos os dados da tabela no esquema s1 como usuário somente leitura user1.