2015-08-18 8:14 GMT-03:00 <ngonz...@ig.com.br>: > 1) É possivel abrir o Banco em modo read-only? Talvez passando parametros > na string de conexao. Como? >
Uma forma simples, é você alterar o default_transaction_read_only para o usuário: ALTER ROLE seu_usuario_readonly SET default_transaction_read_only TO 'on'; > 2) Caso positivo, o acesso fica mais rápido? > Em algumas situações bem específicas com transações SERIALIZABLE eu sei que existe uma melhora, fora isso não acho que terás muito ganho, especialmente se estiver usando READ COMMITED (o padrão). Talvez alguém mais saiba de outras situações. Saiba também que alterar o default_transaction_read_only para o usuário não vai te garantir segurança, pois está configuração pode ser alterada posteriormente pelo mesmo, então você deve garantir segurança via GRANT/REVOKE. Quando quero criar um usuário read-only, eu costumo criar uma "role container", alterar o ALTER DEFAULT PRIVILEGES (ADP) do(s) schema(s) e conceder SELECT à todas tabelas do(s) schema(s). Exemplo: -- cria a role container (não faz login) CREATE ROLE meu_db_readonly NOLOGIN; -- altera permissão padrão para tabelas que serão criadas ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO meu_db_readonly; -- altera permissão das tabelas existentes GRANT SELECT ON ALL TABLES IN SCHEMA public TO meu_db_readonly; OBS: O ADP só vai funcionar como esperado caso seja executado (ou use FOR ROLE) pelo mesmo usuário que será o proprietário dos objetos. E troque "public" pelo seu esquema, caso use outro. Em seguida, para todo usuário que for "read-only", basta adicioná-lo em "meu_db_readonly": GRANT meu_db_readonly TO meu_usuario; Atenciosamente, -- Matheus de Oliveira
_______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral