-
-
Notifications
You must be signed in to change notification settings - Fork 264
Open
Description
Following relates to Windows only, system locale = ru_RU.
Consider two scripts from attached .zip
connect-using-non-ascii-username_-_win1251-vs-utf8.zip
File "connect-win1251.sql" was encoded using CP1251, file "connect-utf8.sql" - UTF8.
Run two command window.
cmd-1:
chcp 1251
isql -q -i connect-win1251.sql
Result: script completes without errors (though value of rdb$get_context('SYSTEM', 'CURRENT_USER') contain mojibakes)
Details
C:\FBTESTING\qa\misc>chcp
Текущая кодовая страница: 1251
C:\FBTESTING\qa\misc>isql -q -i connect-win1251.sql
set names win1251;
shell if exist c:\temp\tmp4test.fdb del c:\temp\tmp4test.fdb;
connect 'localhost:employee' user sysdba password 'masterkey';
create or alter user "Джон О'Хара" password '123';
commit;
create database 'c:\temp\tmp4test.fdb' user "Джон О'Хара";
create or alter view v_info as
select
m.mon$database_name
,mon$creation_date
,m.mon$owner
,a.mon$attachment_name
,a.mon$user
,a.mon$remote_protocol
,a.mon$client_version
,a.mon$auth_method
,rdb$get_context('SYSTEM', 'CURRENT_USER') as ctx_current_user
,current_user as whoami
from mon$database m
cross join mon$attachments a where a.mon$attachment_id = current_connection;
commit;
select * from v_info;
MON$DATABASE_NAME C:\TEMP\TMP4TEST.FDB
MON$CREATION_DATE 2026-01-20 10:29:12.0580 GMT
MON$OWNER Джон О'Хара
MON$ATTACHMENT_NAME C:\TEMP\TMP4TEST.FDB
MON$USER Джон О'Хара
MON$REMOTE_PROTOCOL <null>
MON$CLIENT_VERSION <null>
MON$AUTH_METHOD User name in DPB
CTX_CURRENT_USER Джон О'Хара
WHOAMI Джон О'Хара
show database;
Database: c:\temp\tmp4test.fdb
Owner: Джон О'Хара
...
Embedded connection
Creation date: Jan 20, 2026 13:29:12
Replica mode: NONE
Default Character set: SYSTEM.NONE
Publication: Disabled
commit;
connect 'c:\temp\tmp4test.fdb' user "Джон О'Хара";
select * from v_info;
MON$DATABASE_NAME C:\TEMP\TMP4TEST.FDB
MON$CREATION_DATE 2026-01-20 10:29:12.0580 GMT
MON$OWNER Джон О'Хара
MON$ATTACHMENT_NAME C:\TEMP\TMP4TEST.FDB
MON$USER Джон О'Хара
MON$REMOTE_PROTOCOL <null>
MON$CLIENT_VERSION <null>
MON$AUTH_METHOD User name in DPB
CTX_CURRENT_USER Джон О'Хара
WHOAMI Джон О'Хара
commit;
connect 'localhost:c:\temp\tmp4test.fdb' user "Джон О'Хара" password '123';
select * from v_info;
MON$DATABASE_NAME C:\TEMP\TMP4TEST.FDB
MON$CREATION_DATE 2026-01-20 10:29:12.0580 GMT
MON$OWNER Джон О'Хара
MON$ATTACHMENT_NAME C:\TEMP\TMP4TEST.FDB
MON$USER Джон О'Хара
MON$REMOTE_PROTOCOL TCPv6
MON$CLIENT_VERSION WI-T6.0.0.1394 Firebird 6.0 Initial
MON$AUTH_METHOD Srp
CTX_CURRENT_USER Джон О'Хара
WHOAMI Джон О'Хара
commit;
cmd-2:
chcp 65001
isql -q -i connect-utf8.sql
Result: script fails with "SQLSTATE = 28000 / Your user name and password ..."
Details
Microsoft Windows [Version 10.0.19045.3086]
(c) Корпорация Майкрософт (Microsoft Corporation). Все права защищены.
C:\FBTESTING\qa\misc>chcp 65001
Active code page: 65001
C:\FBTESTING\qa\misc>isql -q -i connect-utf8.sql
set names utf8;
shell if exist c:\temp\tmp4test.fdb del c:\temp\tmp4test.fdb;
connect 'localhost:employee' user sysdba password 'masterkey';
create or alter user "Джон О'Хара" password '123';
commit;
create database 'c:\temp\tmp4test.fdb' user "Джон О'Хара";
create or alter view v_info as
select
m.mon$database_name
,mon$creation_date
,m.mon$owner
,a.mon$attachment_name
,a.mon$user
,a.mon$remote_protocol
,a.mon$client_version
,a.mon$auth_method
,rdb$get_context('SYSTEM', 'CURRENT_USER') as ctx_current_user
,current_user as whoami
from mon$database m
cross join mon$attachments a where a.mon$attachment_id = current_connection;
commit;
select * from v_info;
MON$DATABASE_NAME C:\TEMP\TMP4TEST.FDB
MON$CREATION_DATE 2026-01-20 10:23:06.8600 GMT
MON$OWNER Джон О'Хара
MON$ATTACHMENT_NAME C:\TEMP\TMP4TEST.FDB
MON$USER Джон О'Хара
MON$REMOTE_PROTOCOL <null>
MON$CLIENT_VERSION <null>
MON$AUTH_METHOD User name in DPB
CTX_CURRENT_USER Джон О'Хара
WHOAMI Джон О'Хара
show database;
Database: c:\temp\tmp4test.fdb
Owner: Джон О'Хара
PAGE_SIZE 8192
Number of DB pages allocated = 295
Number of DB pages used = 287
Number of DB pages free = 8
Sweep interval = 20000
Forced Writes are ON
Transaction - oldest = 4
Transaction - oldest active = 5
Transaction - oldest snapshot = 5
Transaction - Next = 9
ODS = 14.0
Database not encrypted
Embedded connection
Creation date: Jan 20, 2026 13:23:06
Replica mode: NONE
Default Character set: SYSTEM.NONE
Publication: Disabled
commit;
connect 'c:\temp\tmp4test.fdb' user "Джон О'Хара";
select * from v_info;
MON$DATABASE_NAME C:\TEMP\TMP4TEST.FDB
MON$CREATION_DATE 2026-01-20 10:23:06.8600 GMT
MON$OWNER Джон О'Хара
MON$ATTACHMENT_NAME C:\TEMP\TMP4TEST.FDB
MON$USER Джон О'Хара
MON$REMOTE_PROTOCOL <null>
MON$CLIENT_VERSION <null>
MON$AUTH_METHOD User name in DPB
CTX_CURRENT_USER Джон О'Хара
WHOAMI Джон О'Хара
commit;
connect 'localhost:c:\temp\tmp4test.fdb' user "Джон О'Хара" password '123';
Statement failed, SQLSTATE = 28000
Your user name and password are not defined. Ask your database administrator to set up a Firebird login.
After line 32 in file connect-utf8.sql
C:\FBTESTING\qa\misc>
PS.
Same if we try to specify inet:// or xnet:// instead of 'localhost:' in last statement.
Metadata
Metadata
Assignees
Labels
No labels