Hi,In FB 3.0.3 it's possible to create a user with mixed case like this in isql:
create user "MixedCaseName" password '***';
After that, I create a database in isql, referencing the already defined alias 'MyDB': create database 'MyDB' user "MixedCaseName" password '***' page_size 4096 set names 'UTF8' default character set UTF8 collation UNICODE;
Then I try to connect using .NET FirebirdClient 6.3.0 with this connections string:
Server=xxx.xxx.xxx.xxx;port=3050;Database=MyDB;Charset=UTF8;User='"MixedCaseName"';Password=***This fails with an error saying "Your user name and password are not defined. Ask your database administrator to set up a Firebird login.".
I checked that the connection string is (correctly) parsed so that the user name that's actually submitted by the .NET FirebirdClient is "MixedCaseName" with double quotes included.
I've also tried these connections strings, but none of them work: Server=xxx.xxx.xxx.xxx;port=3050;Database=MyDB;Charset=UTF8;User="MixedCaseName";Password=*** Server=xxx.xxx.xxx.xxx;port=3050;Database=MyDB;Charset=UTF8;User='MixedCaseName';Password=*** Server=xxx.xxx.xxx.xxx;port=3050;Database=MyDB;Charset=UTF8;User=MixedCaseName;Password=***In all these cases, the user name is parsed so that it is sent to the server qithout quotes, and the same error occurs.
Finally, switching the single and double quotes: Server=xxx.xxx.xxx.xxx;port=3050;Database=MyDB;Charset=UTF8;User="'MixedCaseName'";Password=***The password is parsed so that it is sent with the single quotes 'MixedCaseName' to the server. Same error.
It seem to me that the .NET FirebirClient does a correct job parsing the connection string, but no matter how the user name is sent to the server, the login fails.
Trying the exact same thing with a uppercase user name works when the username is specified so that it is sent to the server without quotes, but fails with the same error if it's sent with double or single quotes. I.e. these work:
Server=xxx.xxx.xxx.xxx;port=3050;Database=MyDB;Charset=UTF8;User="UPPERNAME";Password=*** Server=xxx.xxx.xxx.xxx;port=3050;Database=MyDB;Charset=UTF8;User='UPPERNAME';Password=*** Server=xxx.xxx.xxx.xxx;port=3050;Database=MyDB;Charset=UTF8;User=UPPERNAME;Password=*** But these fail: Server=xxx.xxx.xxx.xxx;port=3050;Database=MyDB;Charset=UTF8;User="'UPPERNAME'";Password=*** Server=xxx.xxx.xxx.xxx;port=3050;Database=MyDB;Charset=UTF8;User='"UPPERNAME"';Password=***I also note that in this case, it doesn't matter what case is used for the user name. I.e. These also work:
Server=xxx.xxx.xxx.xxx;port=3050;Database=MyDB;Charset=UTF8;User="Uppername";Password=*** Server=xxx.xxx.xxx.xxx;port=3050;Database=MyDB;Charset=UTF8;User='uPpErNaMe';Password=*** Server=xxx.xxx.xxx.xxx;port=3050;Database=MyDB;Charset=UTF8;User=upperNAME;Password=*** As far as I understand this: https://firebirdsql.org/file/documentation/release_notes/html/en/3_0/rnfb30-login-international.htmlFirebird 3 is supposed to fully support mixed-case user names. Seems not to work in this case, or am I missing something?
Neither user name nor password uses anything except a-z, A-Z, 0-9 and & in any of these tests, so there should be no problems caused by OEM/ANSI/UTF8 code page mixups.
Mvh, Kjell
<<attachment: kjell_rilbe.vcf>>
Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel