[firebase-br] Problemas com GBAK em web server
Mario
brujeria em task.com.br
Sáb Out 28 15:34:39 -03 2006
Ola,
problema resulvido, vou mostrar a solução aqui para todos.
Como postar um banco FB em um servidor web?
1. Primeiro receba um usuário e senha do servidor web referente ao seu
banco. Lembrando que este deverá ter a permissão de DONO do banco, como
o SYSDBA deles.
2. Crie este usuário e senha em seu firebird local.
3. Monte seu banco de dados usando na conexao local este usuário e
senha. Lembrando de criar usando a mesma versão do firebird do servidor
web.
4. Efetue um BACKUP deste banco :
gbak -b /var/banco.gdb /var/banco.gbk
5. Faça um RESTORE deste backup no servidor web:
gbak -r /var/banco.gbk ip_servidor:/var/www/banco.gdb -user USUARIO
-pass SENHA
Problema: Antes eu estava gerando o banco como SYSDBA e dava permissão
para o usuário do servidor usando GRANT. Este GRANT eu aplicava pra
todas as tabelas e de sistemas também, dando permissão total.
Efetuando o RESTORE percebia que tudo era copiado perfeitamente, até os
GRANT's estavam no banco de dados no servidor web. E mesmo assim quando
eu tentava acessá-lo vinha como resposta que não tinha permissão de
acesso à tabela.
Solução: Basta criar seu banco usando o mesmo usuário que foi criado no
servidor web.
Pergunta:
Porque os GRANT's, que são copiados pelo RESTORE, não funcionaram?
Há algo a mais que eu deveria ter feito?
Eu uso ubuntu/apache2/php5/firebird2 e o servidor web firebird2.
Uso também meu sistema no servidor web, localmente e um ibwebadmin local
acessando o banco do server web.
Obrigado a todos que ajudaram,
Mario H.
kua base em seu computador usando este
Em Sáb, 2006-10-28 às 14:30 -0200, Mario escreveu:
> Ola,
>
> certo, mas isso e um pouco inviavel quando usamos servidores web, porque
> este nãp é um servidor controlado por mim. Nao tenho como apagar o banco
> e recriar.
>
> Mas ai vai minha pergunta, nao era pro restore funcionar desta maneira?
>
> Ouvi falar que o restore nao copiar os usuários. Então se este é o unico
> problema o que fiz é dar GRANT para o usuário que já esta criado!
>
> Portanto ainda nao entendi porque o restore nao funcionaria!
>
> Obrigado!!!
> Mario H.
>
> Em Sáb, 2006-10-28 às 13:11 -0300, Eduardo Jedliczka (TeamFB) escreveu:
> > Acho que da forma que você está pensando em fazer não vai virar...
> >
> > Já passei por isto, e posso lhe dizer que a melhor forma é apagar este
> > arquivo e recriar o banco lá no servidor através de scripts...
> >
> > extraia o metadata da sua base local e crie ele via IBExpert (ou outra
> > ferramenta), assim, não vai ter problemas com permissões ou restrições, pois
> > o owner do banco será o SEU USUÁRIO...
> >
> > ======================
> > Eduardo Jedliczka
> > Membro do TeamFB - FireBase
> > Apucarana - PR
> > ======================
> > "Posso não concordar com nada do que dizes.
> > Mas defenderei até a morte o seu direito de dizê-lo"
> > (Voltaire 1694-1778)
> > ----- Original Message -----
> > From: "Mario" <brujeria em task.com.br>
> > To: "FireBase" <lista em firebase.com.br>
> > Sent: Saturday, October 28, 2006 1:04 PM
> > Subject: Re: [firebase-br] Problemas com GBAK em web server
> >
> >
> > Ola,
> >
> > muito obrigado, vc foi o unico a responder!
> >
> > O servidor web mudou a permissao do meu USUARIO e pos como DONO do
> > banco!
> >
> > Portanto agora consigo fazer o RESTORE com sucesso!
> >
> > O que ocorre é o seguinte:
> > 1. Em minha casa gero o banco usando o SYSDBA e faço um GRANT para todas
> > as tabelas dando permissao para USUARIO.
> >
> > 2. Faço o restore do banco com destino o servidor web, e esse faz com
> > sucesso!
> >
> > 3. O que ocorre é que quando vou acessar os dados usando USUARIO ele diz
> > que nao tem permissao para leitura nas tabelas.
> >
> > 4. Eu vo no METADATA e la mostra os GRANT para USUARIO em todas as
> > tabelas.
> >
> > O que voce me recomenda a fazer?
> > Neste momento estou gerando o banco como USUARIO (ao inves de SYSDBA) e
> > vou tentar mais um restore.
> >
> >
> > Obrigado,
> > Mario H.
> >
> >
> >
> > Em Sáb, 2006-10-28 às 10:56 -0300, Eduardo Jedliczka (TeamFB) escreveu:
> > > não vi se alguém respondeu a sua pergunta, mas vamos lá...
> > >
> > > Estabeleça uma conexão com um outro banco de dados (via ibexpert) e use um
> > > drop database.
> > >
> > > depois disto, restaure o seu backup.
> > >
> > > ======================
> > > Eduardo Jedliczka
> > > Membro do TeamFB - FireBase
> > > Apucarana - PR
> > > ======================
> > > "Posso não concordar com nada do que dizes.
> > > Mas defenderei até a morte o seu direito de dizê-lo"
> > > (Voltaire 1694-1778)
> > > ----- Original Message -----
> > > From: "Mario" <brujeria em task.com.br>
> > > To: "FireBase" <lista em firebase.com.br>
> > > Sent: Thursday, October 26, 2006 6:12 PM
> > > Subject: [firebase-br] Problemas com GBAK em web server
> > >
> > >
> > > Pessoal,
> > >
> > > estou usando ubuntu/php/firebird2 e quero colocar o banco que esta em
> > > meu computador em um servidor web.
> > >
> > > Faço o seguinte comando:
> > > # gbak -r /var/www/meusite/banco.gdb
> > > ip_servidor_web:/var/lib/firebird2/data/banco.gdb -user USUARIO_DO_BANCO
> > > -pass SENHA
> > >
> > > PS: Ja tentei usar este gbak de todas as formas possiveis, com o ip,
> > > nome dns, localhost, meu ip..... tudo!
> > >
> > > Dá o seguinte erro:
> > > gbak: ERROR: Cannot restore over current database, must be SYSDBA or
> > > owner of the existing database.
> > > gbak: Exiting before comple
> > >
> > > Usando o IBWEBADMIN que está rodando no meu localhost, consigo conectar
> > > com USUARIO a este banco no servidor web e manipular a vontade.
> > >
> > > Pelo visto o gbak precisa rodar com o SYSDBA ou com um usuario que seja
> > > o dono do banco. E o meu USUARIO parece nao ser nenhum dos dois.
> > >
> > > Resumindo, qual a permissao necessária pra fazer o gbak. Ou melhor,
> > > quais as maneiras de dar permissao.
> > >
> > > Obrigado,
> > > Mario H.
> > >
> > >
> > > ______________________________________________
> > > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > > Para editar sua configuração na lista, use o endereço
> > > http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> > > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> > >
> > >
> > > ______________________________________________
> > > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > > Para editar sua configuração na lista, use o endereço
> > > http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> > > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> >
> >
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > Para editar sua configuração na lista, use o endereço
> > http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> >
> >
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
Mais detalhes sobre a lista de discussão lista