Ir para conteúdo
Fórum Script Brasil
  • 0

Permissão negada em um schema


marcelo.santos.joinville

Pergunta

Boa tarde, estou implementado umas regras para somente leitura em um banco de dados e utilizei as seguintes linhas:

 

GRANT CONNECT ON DATABASE "hom-jurimetria_meli_dw" TO role_finch_db_n1_hom_jurimetria_meli_dw;
GRANT USAGE ON SCHEMA public TO "role_finch_db_n1_hom_jurimetria_meli_dw";
REVOKE CREATE ON SCHEMA public FROM PUBLIC;
REVOKE CREATE ON SCHEMA public FROM role_finch_db_n1_hom_jurimetria_meli_dw;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO "role_finch_db_n1_hom_jurimetria_meli_dw";
GRANT EXECUTE ON ALL PROCEDURES IN SCHEMA public TO "role_finch_db_n1_hom_jurimetria_meli_dw";
GRANT ALL PRIVILEGES ON DATABASE "hom-jurimetria_meli_dw" TO "role_finch_db_n1_hom_jurimetria_meli_dw";
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO "role_finch_db_n1_hom_jurimetria_meli_dw";
GRANT ALL PRIVILEGES ON ALL PROCEDURES IN SCHEMA public TO "role_finch_db_n1_hom_jurimetria_meli_dw";
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO "role_finch_db_n1_hom_jurimetria_meli_dw";
REVOKE CREATE ON DATABASE "hom-jurimetria_meli_dw" FROM role_finch_db_n1_hom_jurimetria_meli_dw;
REVOKE INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA PUBLIC FROM role_finch_db_n1_hom_jurimetria_meli_dw;

 

Esta tudo funcioinando certinho, o que não estou conseguindo colocar é quando eu crio com um Superusuario um novo Schema essa role não consegue dar um select dá permissão negada, consigo somente se eu inserir:

GRANT USAGE ON SCHEMA teste TO "role_finch_db_n1_hom_jurimetria_meli_dw";

GRANT SELECT ON ALL TABLES IN SCHEMA teste TO "role_finch_db_n1_hom_jurimetria_meli_dw";

A minha pergunta é eu vou precisar adicionar essas regras em cada schema criado? Ou existe uma maneira de ele enxergar e conseguir dar um select de frma global sem precisar adicionar essas linhas de permissão.

 

GRato

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Boa noite, quando você executa o comando GRANT SELECT ON ALL TABLES IN SCHEMA, o usuário poderá executar o SELECT em todas tabelas criadas antes da sua execução, já não terá acesso as tabelas após a execução.

Caso esteja executando o POSTGRESQL na versão 14, existem as roles pg_read_all_data e pg_write_all_data que dão acesso de leitura e escrita respectivamente, para as tabelas existentes e as que forem criadas após a sua execução.

GRANT pg_read_all_data TO usuario;

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...