Jump to content
Fórum Script Brasil
  • 0

Permissão negada em um schema


marcelo.santos.joinville
 Share

Question

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 to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      150.7k
    • Total Posts
      648.4k
×
×
  • Create New...