I have database of firebird of more than 8 GB and I want to migrate all the data from it. But I have forgotten the username and password. Is there anyway or any tool through which I can crack this database and can get my data back?
相关问题
- “Zero out” sensitive String data in Swift
- NOT DISTINCT query in mySQL
- Flush single app django 1.9
- High cost encryption but less cost decryption
- keeping one connection to DB or opening closing pe
相关文章
- Warning : HTML 1300 Navigation occured?
- Connection pooling vs persist connection mysqli
- Security concerns about CORS
- How do I prevent SQL injection with ColdFusion
- LINQ to Entities and SQL Injection
- Speed up sqlFetch()
- How to use Google application-specific password in
- Will re-populating a password field in a form be a
In most Firebird setups, the username and password is kept in a central security database (security3.fdb in the case of Firebird 3). If you don't know the username and password of a user anymore, you have the following options.
Be aware, this answer uses Firebird 3 as its base, but most options also apply to Firebird 2.5 and earlier. Instead of
security3.fdb
, usesecurity2.fdb
. Thecreate user
andalter user
steps only work in Firebird 2.5 or higher.RDB$ADMIN
role in the security database) to reset the password of the user through any other databasegsec
as SYSDBA in embedded mode to reset the passwordIf your database uses itself as its security database, you will first have to remove that setting from the
databases.conf
by commenting out theSecurityDatabase
setting for that database.For Firebird 3, this answer assumes the creation of a user for the Srp authentication mechanism, and the steps below assume that the
firebird.conf
in the Firebird installation has settingAuthServer = Srp
(or at least that settingAuthServer
containsSrp
) and settingUserManager = Srp
(or at least thatSrp
is the first entry forUserManager
).Option 1: reset a password
Works on Firebird 2.5 and higher
Connect to a database with SYSDBA (or another user with admin role on the security database), and use
This is probably not an option in your case though.
Option 1a: reset with embedded connection (passwordless)
Works on Linux for Firebird 2.5 or higher, on Windows requires Firebird 3.0 or higher.
Stop Firebird server, and use ISQL to connect to the database in embedded mode (which doesn't require a password):
With a default Firebird 3 installation, you can use
employee
for<database>
, which will use the employee example database.Alter the password as described above. Alternatively, try replacing
sysdba
with the actual username in the isql commandline.Start Firebird server again.
Option 2: use gsec to change the password
Works on Linux for all version, on Windows this only works for Firebird 3.0 and higher.
Be aware that gsec is deprecated since Firebird 3 and may be removed from future Firebird versions.
Stop the Firebird server, open the command line, and in the Firebird installation folder do:
and on the gsec prompt
or if the user doesn't exist yet:
Start Firebird server again.
Option 3: replace security database
Most of these steps also apply if you are using a new Firebird install; just skip the replacing of the security database.
Stop Firebird server and make a copy of your current security3.fdb as a backup.
Obtain a default security3.fdb for your platform (eg download a zipkit from the Firebird 3 download page) or use a security3.fdb with a known password, and replace your current security3.fdb with this default version. Don't start Firebird yet.
For earlier Firebird versions, look for your version on the download page.
The default password for sysdba is normally 'masterkey', but on Firebird 3 the default security3.fdb only contains this user for the legacy authentication mechanism, which is disabled in a default Firebird 3 installation.
To add a sysdba user, use an embedded connection to any database and create a sysdba account. On the command prompt from the Firebird installation folder, run:
Within ISQL execute:
To add another user, connect using SYSDBA - similar to the previous step 2 - to any database and execute
And exit isql (with
quit;
)Then start Firebird server again, and you should be able to connect with this user and its password.
Most of these steps assume you already have a database to connect to, if you don't yet have one, then you'll need to create on first.
Start isql as user sysdba:
And create a database
You can then use that database for the earlier steps.