[gitec] SAPL em modo somente leitura/read only

Adriano Rafael Gomes adriano-gomes em camaranh.rs.gov.br
Sexta Novembro 23 11:42:45 BRST 2012


Prezada lista, preciso da ajuda de vocês para configurar o meu SAPL para o
que eu chamei de "modo somente leitura" (ou "modo read only").

O objetivo é disponibilizar o acesso ao SAPL na Internet somente para
consulta, e que ninguém consiga atacar o SAPL e modificar sua base de
dados a partir da Internet.

A minha ideia é converter o meu SAPL para usar o ZEO, configurado com dois
clientes ZEO:
 * cliente1 configurado para acesso de leitura+escrita (intranet)
 * cliente2 configurado para acesso de somente leitura (Internet)

Já consegui fazer e está funcionando a transformação da minha instância
ZOPE do SAPL em um servidor ZEO, com os dois clientes ZEO configurados
para os modos de acesso que eu quero.

A referência que usei para converter para ZEO foi esta:
http://wiki.zope.org/zope2/ZEOZopeEnterpriseObjects

Para configurar as bases para somente leitura para o cliente2, usei esta
referência:
http://plone.org/documentation/faq/plone-zeo-read-only-mode

Dessa forma, consegui liberar as bases Data.fs e DocumentosSapl.fs com
acesso de leitura+escrita para o cliente1, e de somente leitura para o
cliente2.

Até aqui, parece que está tudo bem.

O que ainda falta eu resolver é o acesso à base MySQL.

Por padrão, o SAPL tem configurado um objeto ZMySQLDA com uma string de
conexão com um usuário que permite acesso de leitura+escrita à base do
MySQL. Esse acesso atende o caso do cliente1.

Quero agora configurar o acesso somente leitura ao MySQL, para o caso do
cliente2.

Quero montar algum mecanismo que permita alterar a string de conexão do
objeto ZMySQLDA em tempo de execução, conforme o cliente (1 ou 2) que
estiver conectando.

Para o cliente2, vou configurar um usuário no MySQL com acesso de somente
leitura nas tabelas (com algumas exceções para escrever em algumas
tabelas, no caso de se cadastrar para acompanhamento de matérias, por
exemplo).

Mas acontece que essa questão de definir a string de conexão ao MySQL
conforme o cliente que estiver sendo usado eu ainda não consegui resolver,
por isso peço a ajuda de vocês.

Além disso, estou interessado em comentários sobre qualquer parte desse
longo e-mail.

Muito obrigado.

-- 
Adriano Rafael Gomes
Analista de Suporte
Câmara Municipal de Novo Hamburgo



Mais detalhes sobre a lista de discussão GITEC