GBAK, GFIX ou Services API só com o SYSDBA...
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 :
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 :
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.
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
Curtidas 0
Respostas
Vinicius2k
30/09/2004
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.
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.
GOSTEI 0
Vinicius2k
30/09/2004
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.
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.
GOSTEI 0
Gandalf.nho
30/09/2004
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)
GOSTEI 0
Vinicius2k
30/09/2004
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+
É 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+
GOSTEI 0
Gandalf.nho
30/09/2004
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...
GOSTEI 0
Afarias
30/09/2004
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+
T+
GOSTEI 0
Afarias
30/09/2004
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+
T+
GOSTEI 0
Vinicius2k
30/09/2004
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.
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.
GOSTEI 0