| Sysdba Out |
|
|
| Por Fernando Reis Guimarães | |
| 17 de July de 2007 | |
|
Introdução Se você já tentou acessar um banco de dados firebird "protegido" por uma role SYSDB provavelmente obteve o erro: - "Your login SYSDBA is same as one of the SQL role name. Ask your database administrator to set up a valid Firebird login." O que vou ensinar é como remover esta "proteção" para que você possa ter acesso completo ao banco. Criando um banco de dados exemplo. Utilize o gsec para criar um novo usuário: C:\>gsec -user sysdba -password masterkey GSEC> add someuser -pw passwd -fname someuserf -mName someuserm -lName someuserl; GSEC> quit
Utilize o isql para criar o novo banco de dados.
C:\>isql -u someuser -p passwd Use CONNECT or CREATE DATABASE to specify a database SQL> CREATE DATABASE 'C:\SYSDBAOUT.FDB'; SQL> CREATE ROLE SYSDBA; SQL> QUIT;
Conectando-se ao banco Tente se conectar ao banco como SYSDBA e veja que não é possível. C:\>isql -u sysdba -p masterkey Use CONNECT or CREATE DATABASE to specify a database SQL> connect 'c:\sysdbaout.fdb'; Statement failed, SQLCODE = -902 Your login SYSDBA is same as one of the SQL role name. Ask your database administrator to set up a valid Firebird login. SQL> Somente é possível com o usuário que criou o banco. Outros usuários também podem conectar-se ao banco, mas isso fica foro do objetivo desse artigo, entretanto é possível negar permissões para outros usuários. C:\>isql -u sydba -p 21436587 Use CONNECT or CREATE DATABASE to specify a database SQL> connect 'c:\sysdbaout.fdb'; Database: 'c:\sysdbaout.fdb', User: sydba SQL> quit;
Desbloqueando o banco de dados utilizando o xvi32. Antes de editar o banco de dados no xvi32, coloque-o em modo shutdown. C:\>gfix -user someuser -password passwd -shut full -force 0 "c:\sysdbaout.fdb"
Abra o banco de dados com o xvi32.
Depois já ao menu Search - > Replace ou aperte as teclas Ctrl+R.
Mande substituir. ATENÇÃO:
Salve e saia do programa.
Testando o arquivo. Tudo pronto. O banco de dados já está desbloqueado e você deverá conseguir acesso ao banco pelo SYSDBA. Mas antes devemos coloca-lo online: Repare que você já poderá utilizar o SYSDBA. C:\>gfix -online "c:\sysdbaout.fdb" -user sysdba -password masterkey Conectando-se ao banco: C:\>isql -user sysdba -password 120955 Use CONNECT or CREATE DATABASE to specify a database SQL> connect 'c:\sysdbaout.fdb'; Database: 'c:\sysdbaout.fdb', User: sysdba SQL> quit;
Desenvolvi um utilitário para automatiza este processo, não se esqueça de dar um shutdown no banco antes de utilizá-lo. http://arquivos.fernandobhz.com.br/SYSDBAOut.zip
|
|
| Última Atualização ( 03 de July de 2009 ) |
Sysdba Out 


