FirebirdSQL / firebird

Firebird server, client and tools
https://www.firebirdsql.org/
1.26k stars 217 forks source link

Cannot attach to user manager with non-ascii symbols in password [CORE3411] #3774

Open firebird-automations opened 13 years ago

firebird-automations commented 13 years ago

Submitted by: Олег Короткий (олег короткий)

When I create a new user with password containig non-ascii symbols(like cyrillic), I can attach to database with this password, but I can't change this password using gsec: >gsec -add test -pw тест -user sysdba -pass masterkey

>gsec -modify test -pw 777 -user test -pass тест use gsec -? to get help Your user name and password are not defined. Ask your database administrator to set up a Firebird login. unable to open database

>gsec -modify sysdba -pw тест -user sysdba -pass masterkey

>gsec -modify sysdba -pw 777 -user sysdba -pass тест use gsec -? to get help Your user name and password are not defined. Ask your database administrator to set up a Firebird login. unable to open database

firebird-automations commented 13 years ago

Commented by: @asfernandes

This is probably due to different code pages (OEM vs ANSI). Windows converts command line arguments from OEM to ANSI in the console.

firebird-automations commented 13 years ago

Commented by: Олег Короткий (олег короткий)

But it's working properly with Firebird-2.1.4.18393_0_Win32 SS, so in firebird 2.5 it's been broken? I've tested with gsec and IBExpert, results the same, 2.1 working good, 2.5 - throws an error.

Firebird-2.1.4.18393_0_Win32:

D:\bin\firebird\bin>gsec -add test -pw тест -user sysdba -pass masterkey

D:\bin\firebird\bin>gsec -modify test -pw 777 -user test -pass тест

D:\bin\firebird\bin>

firebird-automations commented 13 years ago

Commented by: @AlexPeshkoff

Could not it happen due to the fact that password is converted to and from UTF-8 when attaching to service, but not - when starting user_mod service from gsec? At the first glance looks like very possible reason for a bug with non-ascii passwords.