[firebase-br] Permissoes + Owner : Qual funciona afinal?

Mario brujeria em task.com.br
Qui Fev 14 20:04:52 -03 2008


Eduardo,

muito obrigado pela resposta!

Eu sei que fiz errado em mexer na tabela de sistemas, mas foi a única 
solução na qual funcionou! Não é atoa que pedi ajuda na lista, para 
tentar fazer o certo! =)

1. O usuário já está criado no servidor, afinal é um servidor web de uma 
provedora na qual pago hospedagem.
Esta criou um usuário chamado receitas.


2. Na minha máquina local, criei um usuário receitas. Utilizando o 
SYSDBA atribuí todas as permissões ao usuario receitas em todas as 
tabelas, utilizando os GRANT.

3. Daí fiz um restore da minha máquina local para o server remoto!
Conecto no banco remoto com receitas e vejo que as tabelas têm 
permissões (GRANTs) para o usuário receitas!

Mas quando tento fazer um SELECT, por exemplo, dá permissão negada na 
tabela! (no remoto!!!)
Pois no local funciona normal , conectando como receitas faço tudo!!

Como o banco foi criado localmente, este tem o owner SYSDBA!
Para forçar a funcionar, mudei local o OWNER para o receitas, mudando na 
tabela de sistemas, e enviei ao remoto!

Assim funcionou, pois além dos GRANTs o receitas também era OWNER!!!

Por isso acredito ser uma falha do FB! Afinal , porque no local os GRANT 
funcionam e no remoto nao?

Entendeu? O que fiz foi desesperador, acreditando ser um bug do FB sendo 
que não posso deixar o site fora do ar!


Essa foi a primeira vez na minha vida q ví algo no MySQL que é 
vantajoso! O Backup deles é apenas o dump, assim gerando script .sql não 
tem problemas como esse porque o banco é gerado do zero!!!

Valeu
Mario Mol

Eduardo Jedliczka escreveu:
> Vejo que você está empenhado em perder o seu banco (alterando
> diretamente as tabelas de sistema, ainda mais no quesito Owner)
>
> Para as permissões funcionar no firebird o procedimento é muito simples,
> e bem diferente de outros bancos de dados:
>
> faça assim:
>
> 1} crie os usuários no servidor... sim o FB funciona com usuários por
> server e não por database...
> 2) atribua as permissões ao database, se o usuário não existir no
> SERVER, estas permissões não tem nenhum efeito.
>
> quanto ao OWNER ele só serve para um usuário não-SYSDBA fazer backup e
> restore. Não dá para criar objetos privados alterando o OWNER.
>
> Sucesso,
>
> Eduardo Jedliczka.
>
> Em Sex, 2008-02-08 às 20:23 -0200, Mario escreveu:
>   
>> Cantu e cia,
>>
>> por favor, me ajudem!!
>>
>> Faço GRANT's faço localmente, no qual testo e funcionam!
>> Quando faço o restore no remoto, verifico que eles existem!
>>
>> Mas , no remoto, os GRANTs não funcionam??
>>
>> Tive que mecher na tabela de sistema e mudar o OWNER da tabela!!
>>
>> Isso é uma falha do FB1.5? Continua no FB2.0?
>>
>> Obrigado,
>> Mario Mol
>>
>> Mario escreveu:
>>     
>>> Ola,
>>>
>>> gostaria da opinião de vocês sobre o fato de ter os mesmos grants, local 
>>> e remoto,  mas so conseguir acessar local!
>>>
>>> Olha a solução que fiz:
>>> 1. Conectei localmente com o usuário local no qual criei o banco de dados
>>> 2. Mudei o OWNER das tabelas para o mesmo do usuário remoto, ao invez de 
>>> apenas dar GRANT!
>>>     Executei o seguinte comando:
>>>     UPDATE RDB$RELATIONS SET RDB$OWNER_NAME = 'USR_REMOTO' WHERE  
>>> RDB$OWNER_NAME = 'USR_LOCAL';
>>>
>>> 3. Fiz o Backup e estou fazendo o Restore no Remoto!
>>>
>>>
>>> Não gostei muito desta solução pois mechi nas tabelas de sistema!
>>>
>>> Por isso gostaria de saber porque os GRANTs não funcionaram!
>>>
>>> E esta não a primeira vez que acontece comigo, tanto que tomei o costume 
>>> de sempre ir gerando os .sql para recriar todo o banco com o mesmo 
>>> usuário do remoto!
>>>
>>> Valeu
>>> Mario Mol
>>>
>>>
>>> Mario escreveu:
>>>   
>>>       
>>>> Olá,
>>>>
>>>> pessoal estou intrigado e meio de saco cheio!
>>>>
>>>> Sempre quando tenho que exportar um sistema local para o servidor faço 
>>>> o seguinte:
>>>> 1. Pego todos os scripts de CREATE, ALTER e INSERT
>>>> 2. Executo utilizando o mesmo usuário do Server Remoto em um novo 
>>>> banco local
>>>> 3. Faço um backup local
>>>> 4. Faço o restore deste backup local para o server remoto
>>>>
>>>> Desta vez não tenho os scripts de INSERT, e vamos dizer que não tenho 
>>>> uma ferramenta para criá-las.
>>>>
>>>> O que fiz:
>>>> 1. Criei um usuário local com o mesmo nome do remoto
>>>> 2. Peguei o banco local e dei um GRANT SELECT,UPDATE,DELETE,INSERT em 
>>>> todas as tabelas a este usuario
>>>> 3. Fiz um backup e depois restore no remoto
>>>>
>>>> O que acontece:
>>>> 1. Posso verificar que no remoto, agora, tem os mesmos GRANTS que no 
>>>> local!
>>>> 2. No local conecto com este usuario e consigo ver todos os dados!
>>>> 3. No remoto conecto com o mesmo usuario mas NÂO CONSIGO FAZER nenhum 
>>>> select!!!!!!!!
>>>>
>>>>
>>>> Alguma solução ou explicação para o que está acontecendo?
>>>>
>>>> Obrigado,
>>>> Mario Mol
>>>>
>>>>
>>>>
>>>>     
>>>>         
>>> ______________________________________________
>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>>> Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
>>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>>
>>>   
>>>       
>> ______________________________________________
>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>> Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>     
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>   





Mais detalhes sobre a lista de discussão lista