2013/12/11 Renato Sousa <[email protected]>

>
>
>
> Em 11 de dezembro de 2013 14:41, Rafael Fialho Corrêa <
> [email protected]> escreveu:
>
>  Em 11 de dezembro de 2013 14:32, Renato Sousa <[email protected]>escreveu:
>>
>> Bom dia,
>>>
>>> Em 11 de dezembro de 2013 08:59, Matheus de Oliveira <
>>> [email protected]> escreveu:
>>>
>>>> Cara, que cliente de e-mail você usa? Suas mensagens sempre aparecem
>>>> estranhas. O gmail desagrupa elas do resto da thread.
>>>>
>>>> E o top-posting, não creio ser culpa do cliente de e-mail. =/
>>>>
>>> Uso o gmail mesmo.  Realmente vc tem razão, é falta de atenção minha...
>>> Desculpe-me! :D
>>>
>>>>
>>>>
>>>> 2013/12/10 Ivan Leite <[email protected]>
>>>>
>>>>>  Exemplo:
>>>>> GRANT USASE ON SCHEMA myschema FROM usuario;
>>>>>
>>>>
>>>> Bom, esse é um requisito se quiser que o "usuario" acesse qualquer
>>>> objeto dentro do esquema "myschema". Mas creio que o que você se referia
>>>> era o seguinte:
>>>>
>>>>     GRANT SELECT ON ALL TABLES IN SCHEMA myschema TO usuario;
>>>>
>>>> O problema é que só funciona a partir do PostgreSQL 9.0.
>>>>
>>>> Ah, e é "TO" não "FROM", o último é para REVOKE. Não se preocupe, eu
>>>> sempre faço isso também, mas costumo fazer o contrário: usar TO no REVOKE.
>>>> ^^
>>>>
>>>>
>>>>
>>> Então, na verdade  estou me confundindo com esse lance de schema.  Estou
>>> bem acostumado com mysql e estou apanhando um pouco do pgsql!!!!
>>> Dei as permissões de select para cada uma das tabelas, porém o usuário
>>> ainda não consegue "ver" as tabelas!  Tenho que dar permissão ao schema
>>> tbem ?
>>>
>>> Abraços,
>>>
>>> Renato
>>>
>>>
>> Desculpe a falta de gentileza, Renato, mas você leu o e-mail que você
>> mesmo respondeu antes de perguntar isso?
>> Todos os usuários precisam de permissão "usage" nos schemas criados além
>> do "public", para poder, tanto visualizar as tabelas, quanto exercer suas
>> permissões nas mesmas.
>>
>> []'s
>>
>> Olá Rafael,
>
> Não fui claro quanto a permissão do schema!  Já havia concedido a
> permissão USAGE ao usuário, mas algo está errado.
>
> Qdo entro com o usuário user1 obtenho a saida abaixo:
>
>  # psql -U user1 -d sbq
>
> Type "help" for help.
>
> sbq=> \dt
>                     List of relations
>  Schema |            Name             | Type  |  Owner
> --------+-----------------------------+-------+----------
>  sch1   | table1                      | table | user1
>  sch1   | table2                      | table | user1
>   .....
>  sch1   | tableX                      | table | user1
>
>
> Porém, qdo entro com o usuario user2 não consigo ver as mesmas tabelas.
>
>

Aparece algum erro de permissão quando, como user2, você executa:

    SELECT * FROM sch1.table1 LIMIT 1;

??

Se sim, qual erro?

Agora, quanto a não estar vendo as tabelas, pode ser simplesmente por causa
do valor do search_path, para confirmar entre como user1 e depois como
user2 e compare os resultados do seguinte comando:

    SHOW search_path;

Se for diferente, você pode:

1) Configurar o search_path diretamente para o user2:

    ALTER ROLE user2 SET search_path TO sch1,public, ...;

2) Listar as tabelas de um esquema no psql, mesmo fora do search_path:

    \dt sch1.


Atenciosamente,
-- 
Matheus de Oliveira
Analista de Banco de Dados
Dextra Sistemas - MPS.Br nível F!
www.dextra.com.br/postgres
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a