The error you posted is not an authentication failure one but It would be great to get more info - The default schema is 'APP' when no user name (or 'APP') is passed to connect to Derby. Are you trying to access some tables which have not been created yet - That would cause this error to be raised too...Are you getting this error right upon the connection request or are you sending some statements - if you could post all the attributes that you're passing to the DriverManager.getConnection() call, that would be good too...

You might want to check this FAQ entry about this type of error:

Derby's BUILTIN (default) authentication provider can be set at the system or database level. The BUILTIN authentication scheme will use system-wide properties if they have not been overriden by database properties - users can be created at the system or / and database level (database properties). If a user does not get authenticated successfully, you should get an authentication failure error.

Also, user system properties are static ones, which means you will need to restart the server for new ones to be taken into account...

Hope this helps a bit,


On 5/23/07, Petrula, Dan <DPetrula@thezenith.com> wrote:
I am using a client-server configuration with the datebase located on a separate server. If I set 'derby.connection.requireAuthentication=true' ,
'derby.authentication.provider=BUILTIN' , and 'derby.user.dan=danpass' in the derby.properties file, I get the error message SQLException:Schema 'DAN'
does not exist. I am passing a Properties object containing the password name/value pairs as an attribute to the connection url 'conn=DriverManager.get
I would like to set system-wide properties using the 'BUILTIN' authenication provider. There are many examples in Derby documents showing the
 passing of a Properties object or just string value pairs  combinations to Derby.
However, I came upon a note on page 9 of "Tuning Derby" dated 12-11-06. This notes says "If you pass in a Properties object as an argument to the
DriverManager.getConnection call when connecting to the database, those properties are used as a database connection URL attribute, not as properties
of the type discussed in this book".
I am not sure how to interpret that statement. However, it seems to imply that:
    1. It is not possible to authenticate using system-wide properties by passing a password name/value pair as an attribute.
    2. The only way to validate by passing an attribute seems to be at the database level.
    3. I am assuming the use of the 'BUILTIN' authentication provider.
If I create the database using user=dan & password=danpass during the creation process, I can connect to the database by passing the Properties object
and setting derby.connection.requireAuthentication=true. If I don't set the authentication and don't pass the Properties object, I can connect to the database.
If I am correct in my numbered statements, what is the purpose of the 'BUILTIN' option as an authentication provider using system-wide properties? It does not
appear that it can be used.
Of course maybe I just don't understand this authentication process.
Anyone have any comments?



This e-mail, including attachments, contains information that may be confidential, protected by the attorney/client or other privileges, or exempt from disclosure under applicable law. Further, this e-mail may contain information that is proprietary and/or constitutes a trade secret. This e-mail, including attachments, constitutes non-public information intended to be conveyed only to the designated recipient(s). If you are not an intended recipient of this communication, please be advised that any disclosure, dissemination, distribution, copying, or other use of this communication or any attached document is strictly prohibited.  If you have received this communication in error, please notify the sender immediately by reply e-mail and promptly destroy all electronic and printed copies of this communication and any attached documents.