Em 27 de julho de 2011 11:35, Carlos Madsen <[email protected]>escreveu:

> Olá pessoal tentei executar a seguinte SQL,  "select
> has_table_privilege('public','
> tabelaX','select');" para saber se a role public tinha grant de select na
> tabela "tabelaX".
>
> E ele diz que a role 'public' não existe, mas ela existe e é padrão do
> postgres, se dou algum grant para a role public todos os usuários herdam
> essas permissões.
>
>
Creio que vc esteja fazendo confusão... não existe uma role padrão chamada
"public" (em uma instalação inicial), a menos que vc crie uma com esse
nome... o que existe por padrão é um esquema padrão denominado "public".

Para vc saber qual role vc está usando na sua conexão faça:

postgres@postgres=# select current_role;
 current_user
--------------
 postgres
(1 linha)


Olha a utilização do has_table_privilege:

postgres@bdteste=# select has_table_privilege('postgres', 'public.foo',
'select');
 has_table_privilege
---------------------
 t
(1 linha)


Para listar as "roles" da sua base vc pode consultar o catálogo com:

SELECT * FROM pg_roles;

-- 
Fabrízio de Royes Mello
>> Blog sobre TI: http://fabriziomello.blogspot.com
>> Perfil Linkedin: http://br.linkedin.com/in/fabriziomello
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a