While you may have a perfectly good DSN connection setup to a database, the above error may occur when attempting to connect using a web server.
This is probably due to permissions on the database file. When you are connecting directly, the connection is done as the user connecting, with corresponding permissions. However the web server may well be running as a different user with severely restricted permissions.
The solution is to change the database entry in the DSN to specify a remote connection, as detailed in (How do I connect to a remote server?) above. This will cause the connection to the database to be done as the user that the IB/Firebird server is running as, who will have the required permissions.