Olá pessoal, obrigado pela respotas, mas tentem executar essa SQL no banco
de vocês:

 grant select on tabelaX to public;

 E depois a SQL:

 select has_table_privilege('usuarioX', 'tabelaX', 'select');

 Sendo que o usuarioX anteriormente não tinha grant de select na tabelaX,
pelo que entendi ele herdou de public.

 Em seguinda:

 REVOKE ALL PRIVILEGES ON tabelaX FROM public;

 E finalmente:

 select has_table_privilege('usuarioX', 'tabelaX', 'select'); --perdeu a
permissão.

 Pelo que entendi todas as roles herdam o grants do public, mas quando vou
executar a query:

 select has_table_privilege('public', 'tabelaX', 'select');

 Dá um erro dizendo que a role public não existe.


Grato.

Abraços,




Em 27 de julho de 2011 11:49, Fabrízio de Royes Mello <
[email protected]> escreveu:

>
> 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
>
>


-- 
Carlos Alberto Barros Cruz Westhead Madsen
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a