Fórum GBAK, GFIX ou Services API só com o SYSDBA... #47121

30/09/2004

0

Amigos,

Não estou conseguindo efetuar Back-up / Restore ou Fix com um usuário diferente do SYSDBA, mesmo que ele seja o owner do banco...
O metadado :
SET SQL DIALECT 3;
CREATE DATABASE ´D:\Project\bwk\data\MAISDB.FDB´
USER ´VINICIUS´ PASSWORD ´vinicius´
PAGE_SIZE 4096
DEFAULT CHARACTER SET WIN1252;

Já verifiquei tudo o que eu conheço e não consegui explicação... tento executar o back-up com o usuário VINICIUS e :
O erro :
gbak: ERROR: Unable to perform operation. You must be either SYSDBA or owner of the database gbak: Exiting before completion due to errors

Ter efetuado o back-up e restore com o SYSDBA alguma vez pode estar ocasionando isso? Não me recordo se o fiz...
Se eu criar um banco novo com o mesmo usuário, tudo funciona normalmente...

A versão é o Firebird SS 1.5.1.4481 (Final) -- Win32

Desde já agradeço.


Vinicius2k

Vinicius2k

Responder

Posts

30/09/2004

Vinicius2k

Amigos,

Já descobri :?
Fiz a única coisa que eu não tinha feito, que foi comprovar dentro do isql quem era o owner do banco e é o SYSDBA...

Obrigado.


Responder

Gostei + 0

01/10/2004

Vinicius2k

Bem... acabo de descobrir q cometi este erro em outro banco... e este já está em produção e bastante povoado no cliente...

A Dúvida :
É arriscado rodar um update set na RDB$RELATIONS trocando o SYSDBA para o usuário Admin da aplicação na coluna do Owner?
Observei que ela tão tem dependências, mas nunca precisei fazer nenhuma alteração nas tabelas de sistema...

Eu já testei e vi que resolve, mas será que eu não poderia ter consequencias mais tarde? Talvez exista uma forma ´correta´ de fazer isso, mas nunca vi nenhuma informação sobre isso...


Desde já agradeço.


Responder

Gostei + 0

01/10/2004

Gandalf.nho

Outra possibilidade é criar uma versão em branco da base com o OWNER correto e importar os dados de um banco pro outro (a menos que não seja viável fazer isso)


Responder

Gostei + 0

01/10/2004

Vinicius2k

Olá gandalf,

É viável... em termos... o problema é que este banco está a +/- 400 km de mim agora e eu teria duas alternativas : ir pessoalmente efetuar o pump dos dados ou criar uma pequena aplicação que fizesse isso... ambas são difíceis em relação à tempo...
O ideal seria uma solução via script, mas se for arriscado ou não tiver outro jeito vou ter ir até lá...

T+


Responder

Gostei + 0

01/10/2004

Gandalf.nho

Eu creio que alterar o OWNER via script dá pra fazer (embora geralmente se indique que não é aconselhável mexer manualmente nas tabelas de sistema). Outra idéia, embora não sei se é possível (nunca tentei) é fazer o backup como SYSDBA e restaurar como o seu usuário, não sei se recria a base mudando o OWNER...


Responder

Gostei + 0

01/10/2004

Afarias

A forma ´oficial´ de realizar esta operação é fazendo um backup da base e restaurando com o usuário que deseja seja o owner (como mencionado pela gandalf).


T+


Responder

Gostei + 0

01/10/2004

Afarias

Entretanto... apesar de não ter relatos se esta alteração na rdb$relations pode ou não causar problemas futuros, ela tem uma diferença sobre o backup -- quando a base é restaurada apenas o banco (os objetos de sistema) passa a ter o novo owner -- os demais objetos continuam pertencendo aos antigos owners.


T+


Responder

Gostei + 0

03/10/2004

Vinicius2k

Obrigado gandalf e Anderson ! Problema resolvido... e da forma ´correta´ como sugerida pelo Anderson... Backup com um e Restore com outro... e sendo absolutamente honesto, disso eu não sabia...

Quanto aos objetos, Anderson, com certeza todos eram do ´Admin´ ( da aplicação)... peguei uma cópia do meu banco original e comprovei que ele era do ´Admin´... acho (praticamente certo) de que , no cliente, foi feito o backup com o usuário normal, e restaurado com o SYSDBA, por isso ele mudou de Owner... ( mas isso eu nem pensei pq não sabia q acontecia )

Abraços.
Vina.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar