Aluisio Gouveia escreveu:
> É possível permitir que um usuário conecte no banco e acesse objetos que 
> ele tem permissão, mas proibir a criação de novos objestos, se sim, como 
> fazer?
> 
Geralmente é só revogar os privilégios do usuário no esquema onde estão os
seus objetos. Veja:

euler=# create role foo login;
CREATE ROLE
euler=# create table bar (a int);
CREATE TABLE
euler=# revoke create on schema public from public;
REVOKE
euler=# \c - foo
psql (8.4.0)
Você está conectado ao banco de dados "euler" agora como usuário "foo".
euler=> create table teste (a int);
ERRO:  permissão negada para esquema public
euler=> insert into bar values(2);
ERRO:  permissão negada para relação bar
euler=> \c - euler
psql (8.4.0)
Você está conectado ao banco de dados "euler" agora como usuário "euler".
euler=# grant select,insert on bar to foo;
GRANT
euler=# \c - foo
psql (8.4.0)
Você está conectado ao banco de dados "euler" agora como usuário "foo".
euler=> insert into bar values(2);
INSERT 0 1
euler=> delete from bar;
ERRO:  permissão negada para relação bar
euler=> \z
                           Privilégios de acesso
 Esquema | Nome | Tipo  | Privilégios de acesso | Column access privileges
---------+------+-------+-----------------------+--------------------------
 public  | bar  | table | euler=arwdDxt/euler   |
                        : foo=ar/euler
(1 row)


-- 
  Euler Taveira de Oliveira
  http://www.timbira.com/
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a