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 conceder permissões de esquema a um usuário?
Atualizado em 2024-05-09 GMT+08:00

Como conceder permissões de esquema a um usuário?

Esta seção descreve como conceder a permissão de consulta para um esquema como um exemplo. Para obter mais informações, consulte Como conceder permissões de tabela a um usuário? :

  • Permissão para uma tabela em um esquema
  • Permissão para todas as tabelas em um esquema
  • Permissão para que as tabelas sejam criadas no esquema

Suponha que existem usuários u1 e u2, e dois esquemas nomeados após eles. O usuário u2 precisa acessar tabelas no esquema u1.

  1. Conecte-se ao seu banco de dados como dbadmin. Execute as instruções a seguir para criar os usuários u1 e u2. Dois esquemas serão criados e nomeados após os usuários por padrão.

    1
    2
    CREATE USER u1 PASSWORD '{password}';
    CREATE USER u2 PASSWORD '{password}';
    

  2. Crie as tabelas u1.t1 e u1.t2 no esquema u1.

    1
    2
    CREATE TABLE u1.t1 (c1 int, c2 int);
    CREATE TABLE u1.t2 (c1 int, c2 int);
    

  3. Conceda a permissão de acesso do esquema u1 ao usuário u2.

    1
    GRANT USAGE ON SCHEMA u1 TO u2;
    

  4. Conceda ao usuário u2 a permissão para consultar a tabela u1.t1 no esquema u1.

    1
    GRANT SELECT ON u1.t1 TO u2;
    

  5. Inicie uma nova sessão e conecte-se ao banco de dados como usuário u2. Verifique se o usuário u2 pode consultar a tabela u1.t1, mas não a tabela u1.t2.

    1
    2
    SELECT * FROM u1.t1;
    SELECT * FROM u1.t2;
    

  6. Na sessão iniciada pelo usuário dbadmin, conceda ao usuário u2 a permissão para consultar todas as tabelas no esquema u1.

    1
    GRANT SELECT ON ALL TABLES IN SCHEMA u1 TO u2;
    

  7. Na sessão iniciada pelo usuário u2, verifique se u2 pode consultar todas as tabelas.

    1
    2
    SELECT * FROM u1.t1;
    SELECT * FROM u1.t2;
    

  8. Na sessão iniciada pelo usuário dbadmin, crie a tabela u1.t3.

    1
    CREATE TABLE u1.t3 (c1 int, c2 int);
    

  9. Na sessão iniciada pelo usuário u2, verifique se o usuário u2 não tem a permissão de consulta para u1.t3. Indica que o usuário u2 tem permissão para acessar todas as tabelas existentes no esquema u1, mas não as tabelas a serem criadas no futuro.

    1
    SELECT * FROM u1.t3;
    

  10. Na sessão iniciada pelo usuário dbadmin, conceda ao usuário u2 a permissão para consultar as tabelas a serem criadas no esquema u1. Crie tabela u1.t4.

    ALTER DEFAULT PRIVILEGES é usado para conceder permissões em objetos a serem criados.

    1
    2
    ALTER DEFAULT PRIVILEGES FOR ROLE u1 IN SCHEMA u1 GRANT SELECT ON TABLES TO u2;
    CREATE TABLE u1.t4 (c1 int, c2 int);
    

  11. Na sessão iniciada pelo usuário u2, verifique se o usuário u2 pode acessar a tabela u1.t4, mas não tem permissão para acessar u1.t3. Para permitir que o usuário acesse a tabela u1.t3, você pode conceder permissões executando 4.

    1
    SELECT * FROM u1.t4;