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