Em Seg, Julho 14, 2008 18:56, Rúben Lício escreveu:
> Boa noite,
>
> Estava fazendo alguns testes de controle de acesso em um Postgres 8.3
> instalado no Windows XP e me deparei com um comportamente estranho.
> Utilizando-me do pgAdminIII criei uma role nova sem privilégio algum.
> Criei uma conexão nova e me loguei utilizando essa nova role e para
> milhar surpresa consegui listar todos os bancos da base, todas as
> tabelas de todos os bancos e também consegui visualizar o código de
> todas as SP's.
>
> Há alguma forma de impedir que um usuário liste todos os bancos de
> dados inclusive os que ele não tem acesso?
> É possível uma role não ver o código que ela não tem permissão?
>
> O problema é que tenho um servidor que será utilizado para alguns
> clientes, eu queria disponibilizar acesso a algumas SP's para um
> cliente fazer uma interface de acesso para algumas partes do sistema,
> mas esse cliente de forma alguma poderia ter acesso aos outros bancos.
>
> Obrigado.
>
>
> --
> Rúben Lício Reis
> Cybernet Latino América
> www.cybernetla.com
>
> Linux user #433535

Acredito que se vc retirar o acesso ALL no pg_hba ja é um começo, configure os
acessos individualmente por cliente, por exemplo:


# TYPE    DATABASE     USER      CIDR-ADDRESS       METHOD
host          database1    user1       200.115.98.1/32   md5
host          database2    user2       201.67.123.2/32   md5

Se seu pg_hba conter esta linha:

host           all                 all              0/0                         
md5

Apague! é possivel que seja por isso que vc consegui ter acesso a todos os
bancos de dados do servidor.

Desta forma  vc não impede que os bancos sejam listados, mas dificulta um pouco
e faz com que apenas o user1 possa accessar o database1 e o user2 apenas o
database2.


Espero ter contribuido.


Cordialmente,

Aluisio Gouveia.




_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a