|
Проблема с изменением пароля через API функцию isc_modify_user
|
|||
---|---|---|---|
#18+
Доброго дня, при переходе с Firebird 2.5 на 3.0 RC1 возникла следующая проблема: При модификации пользователя, через API не получается установить нужный пароль. Изначально данная проблема проявилась, когда для унификации подложили fbclient 3 для взаимодействия со всеми firebird базами (в том числе 2.5), на 2.5 выявилась следующая проблема - вместо указываемого пароля стал выставлятся user_name. То, что удалось выловить при трассировке: 0 blr_version5, 1 blr_begin, 2 blr_message, 0, 15,0, 6 blr_long, 0, 8 blr_long, 0, 10 blr_short, 0, 12 blr_short, 0, 14 blr_short, 0, 16 blr_short, 0, 18 blr_short, 0, 20 blr_short, 0, 22 blr_short, 0, 24 blr_cstring, 129,1, 27 blr_cstring, 129,1, 30 blr_cstring, 65,0, 33 blr_cstring, 97,0, 36 blr_cstring, 97,0, 39 blr_cstring, 97,0, 42 bl... 0 ms 2016-02-09T12:44:52.1560 (4840:023F602C) ERROR AT jrd8_start_and_send C:\PROGRAM FILES (X86)\FIREBIRD\FIREBIRD_2_5\SECURITY2.FDB (ATT_27, SYSDBA:NONE, NONE, TCPv4:127.0.0.1) 335544665 : violation of PRIMARY or UNIQUE KEY constraint "INTEG_2" on table "RDB$USERS" 335544382 : Problematic key value is ("RDB$USER_NAME" = 'RKG') 2016-02-09T12:44:52.1570 (4840:023F602C) ROLLBACK_TRANSACTION C:\PROGRAM FILES (X86)\FIREBIRD\FIREBIRD_2_5\SECURITY2.FDB (ATT_27, SYSDBA:NONE, NONE, TCPv4:127.0.0.1) (TRA_84, CONCURRENCY | WAIT | READ_WRITE) 0 ms, 3 write(s), 1 fetch(es), 1 mark(s) 2016-02-09T12:44:52.1570 (4840:023F602C) DETACH_DATABASE C:\PROGRAM FILES (X86)\FIREBIRD\FIREBIRD_2_5\SECURITY2.FDB (ATT_27, SYSDBA:NONE, NONE, TCPv4:127.0.0.1) 2016-02-09T12:44:52.1570 (4840:023F602C) TRACE_FINI SESSION_1 IBE_09.02.2016 12:44:36 2016-02-09T12:44:52.1620 (4840:023F6990) FAILED START_SERVICE service_mgr, (Service 008EB8C8, SYSDBA, TCPv4:127.0.0.1, J:\CAPITAL\DEVELOP\CAP_5\TRUNK\Bin\admin.exe:5876) "Add User" -TRUSTED_SVC SYSDBA -ADD RKG -PW RKG 2016-02-09T12:44:52.1630 (4840:023F6990) DETACH_SERVICE service_mgr, (Service 008EB8C8, SYSDBA, TCPv4:127.0.0.1, J:\CAPITAL\DEVELOP\CAP_5\TRUNK\Bin\admin.exe:5876) 2016-02-09T12:44:52.1630 (4840:023F6990) TRACE_FINI SESSION_1 IBE_09.02.2016 12:44:36 2016-02-09T12:44:52.1970 (4840:023FDEB0) QUERY_SERVICE service_mgr, (Service 003E85F0, SYSDBA, TCPv4:127.0.0.1, D:\temp\temp\IBExpert.exe:3796) "Start Trace Session" Send portion of the query: set timeout: 1 Receive portion of the query: retrieve as much of the server output as will fit in the supplied buffer 2016-02-09T12:44:53.1910 (4840:023F79C4) START_TRANSACTION C:\PROGRAM FILES (X86)\FIREBIRD\FIREBIRD_2_5\SECURITY2.FDB (ATT_14, SYSDBA:NONE, NONE, <internal>) (TRA_85, CONCURRENCY | WAIT | READ_ONLY) 2016-02-09T12:44:53.1920 (4840:023F79C4) ROLLBACK_TRANSACTION C:\PROGRAM FILES (X86)\FIREBIRD\FIREBIRD_2_5\SECURITY2.FDB (ATT_14, SYSDBA:NONE, NONE, <internal>) (TRA_85, CONCURRENCY | WAIT | READ_ONLY) 0 ms, 1 write(s), 1 fetch(es), 1 mark(s) 2016-02-09T12:44:53.1990 (4840:023FDEB0) QUERY_SERVICE service_mgr, (Service 003E85F0, SYSDBA, TCPv4:127.0.0.1, D:\temp\temp\IBExpert.exe:3796) "Start Trace Session" Send portion of the query: set timeout: 1 Receive portion of the query: retrieve as much of the server output as will fit in the supplied buffer 2016-02-09T12:44:53.2240 (4840:023F6990) TRACE_INIT SESSION_1 IBE_09.02.2016 12:44:36 2016-02-09T12:44:53.2240 (4840:023F6990) ATTACH_SERVICE service_mgr, (Service 003E3BE8, SYSDBA, TCPv4:127.0.0.1, J:\CAPITAL\DEVELOP\CAP_5\TRUNK\Bin\admin.exe:5876) 2016-02-09T12:44:53.2350 (4840:023F602C) TRACE_INIT SESSION_1 IBE_09.02.2016 12:44:36 2016-02-09T12:44:53.2350 (4840:023F602C) ATTACH_DATABASE C:\PROGRAM FILES (X86)\FIREBIRD\FIREBIRD_2_5\SECURITY2.FDB (ATT_28, SYSDBA:NONE, NONE, TCPv4:127.0.0.1) 2016-02-09T12:44:53.2350 (4840:023F602C) START_TRANSACTION C:\PROGRAM FILES (X86)\FIREBIRD\FIREBIRD_2_5\SECURITY2.FDB (ATT_28, SYSDBA:NONE, NONE, TCPv4:127.0.0.1) (TRA_86, CONCURRENCY | WAIT | READ_WRITE) 2016-02-09T12:44:53.2370 (4840:023F602C) COMPILE_BLR C:\PROGRAM FILES (X86)\FIREBIRD\FIREBIRD_2_5\SECURITY2.FDB (ATT_28, SYSDBA:NONE, NONE, TCPv4:127.0.0.1) Похожим образом ведет себя и база 3.0 (по крайней мере по симптомам, что c новым паролем пользователь зайти не может, т.к. валится ошибка " Your user name and password are not defined. Ask your database administrator to set up a Firebird login. ") Может есть какие-то известные варианты, в каком направлении двигаться для поиска решения? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.02.2016, 11:46 |
|
Проблема с изменением пароля через API функцию isc_modify_user
|
|||
---|---|---|---|
#18+
Константин Розенков, на фига мучится с API isc_modify_user если можно модифицировать пользователей с помощью SQL? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.02.2016, 11:47 |
|
Проблема с изменением пароля через API функцию isc_modify_user
|
|||
---|---|---|---|
#18+
Hello, Симонов Денис! You wrote on 29 февраля 2016 г. 11:48:52: Симонов Денис> на фига мучится с APIты неправ. осознай это. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.02.2016, 11:48 |
|
Проблема с изменением пароля через API функцию isc_modify_user
|
|||
---|---|---|---|
#18+
Константин Розенков, бррр... что-то я не понял. Почему тройка к security2.fdb от 2.5 пытается лезть ... |
|||
:
Нравится:
Не нравится:
|
|||
29.02.2016, 11:49 |
|
Проблема с изменением пароля через API функцию isc_modify_user
|
|||
---|---|---|---|
#18+
Мимопроходящий, все service API функции по управлению пользователями в тройке объявлены как deprecated и существуют только для обратной совместимости. Но проблема ТСа судя по всему не в них ... |
|||
:
Нравится:
Не нравится:
|
|||
29.02.2016, 11:54 |
|
Проблема с изменением пароля через API функцию isc_modify_user
|
|||
---|---|---|---|
#18+
Симонов Денис, База под FB3 RC1 пока только обкатывается, а все остальные на 2.5 и изначально, по возможности, хотелось использовать одну клиентскую библиотеку. (добавление/изменение/удаление пользователей реализовано через функции API) Но, собственно говоря, проблема с модификацией пользователей всплыла и в связке FB3.0 + fbclient 3 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.02.2016, 12:09 |
|
Проблема с изменением пароля через API функцию isc_modify_user
|
|||
---|---|---|---|
#18+
Константин Розенковв каком направлении двигаться для поиска решения? Минимально воспроизводимый пример и трекер. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.02.2016, 12:17 |
|
Проблема с изменением пароля через API функцию isc_modify_user
|
|||
---|---|---|---|
#18+
Константин Розенков, судя по твоему трейсу ты пытаешься подключится через security2.fdb, т.е. к неродной security БД. Так без танцев с бубном сделать не выйдет. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.02.2016, 12:23 |
|
Проблема с изменением пароля через API функцию isc_modify_user
|
|||
---|---|---|---|
#18+
Симонов Денисвсе service API функции по управлению пользователями в тройке объявлены как deprecated что-то я не могу найти такого заявления. тем более, что isq_modify_user - это вовсе не services api. А вот в InterBase - да, isc_modify_user и аналогичные - deprecated, именно по причине необходимости использования services api: http://docwiki.embarcadero.com/InterBase/XE7/en/Isc_modify_user() ... |
|||
:
Нравится:
Не нравится:
|
|||
29.02.2016, 12:24 |
|
Проблема с изменением пароля через API функцию isc_modify_user
|
|||
---|---|---|---|
#18+
kdvСимонов Денисвсе service API функции по управлению пользователями в тройке объявлены как deprecated что-то я не могу найти такого заявления. вот цитата из Release Notes 3.0 Older Methods DeprecatedFrom Firebird 3.0, multiple security databases are supported. This capability is not supported by either the gsec utility or the Services API. Use of both of these methods is deprecated. kdvтем более, что isq_modify_user - это вовсе не services api. А вот в InterBase - да, isc_modify_user и аналогичные - deprecated, именно по причине необходимости использования services api: http://docwiki.embarcadero.com/InterBase/XE7/en/Isc_modify_user() о как! Это получается существует 3 способа модификации пользователя. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.02.2016, 12:34 |
|
Проблема с изменением пароля через API функцию isc_modify_user
|
|||
---|---|---|---|
#18+
Симонов Денисвот цитата из Release Notes 3.0 ясно. видимо, isc_modify и иже с ними упомянуть забыли. Вообще это старые функции, еще до Services API. Симонов Денисо как! Это получается существует 3 способа модификации пользователя. я не знаю, каким способом модифицирует юзеров gsec. Теоретически, получается 4 способа: - gsec - было испокон веку - isc_add_user, isc_modify_user, isc_delete_user - появились в InterBase 5.0 - Services API - начиная с 6.0 (недокументированное - в 5.x) - SQL - начиная с ФБ 2.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.02.2016, 12:48 |
|
Проблема с изменением пароля через API функцию isc_modify_user
|
|||
---|---|---|---|
#18+
Симонов ДенисThis capability is not supported by either the gsec utility or the Services API. По крайней мере в части gsec релиз ноты ошибаются. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.02.2016, 12:55 |
|
Проблема с изменением пароля через API функцию isc_modify_user
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, и в чём же? добавить sysdba можно и без gsec ... |
|||
:
Нравится:
Не нравится:
|
|||
29.02.2016, 12:57 |
|
Проблема с изменением пароля через API функцию isc_modify_user
|
|||
---|---|---|---|
#18+
Симонов Дениси в чём же? В том, что "this capability is not supported by the gsec". Он, конечно, не в состоянии сам выбрать с какой БД паролей ему работать, но её легко можно указать в командной строке. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.02.2016, 13:09 |
|
Проблема с изменением пароля через API функцию isc_modify_user
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, а ну да там переключатель есть. Я думал ты споришь что не deprecated ... |
|||
:
Нравится:
Не нравится:
|
|||
29.02.2016, 13:12 |
|
Проблема с изменением пароля через API функцию isc_modify_user
|
|||
---|---|---|---|
#18+
Симонов ДенисЯ думал ты споришь что не deprecated Объявить deprecated - это чисто политическое решение разработчиков, которые решили, что их новое изобретение идеально и работает во всех-всех случаях. Спорить с ними бесполезно. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.02.2016, 13:24 |
|
Проблема с изменением пароля через API функцию isc_modify_user
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, ну SQL то работать удобнее. В 2.5 некоторых вещей по управлению пользователями через SQL не хватало, например просмотр списка пользователей. В тройке добавили виртуальную таблицу SEC$USERS и проблема ушла. Единственный довольно неуклюжий момент это инициализация SYSDBA. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.02.2016, 13:31 |
|
Проблема с изменением пароля через API функцию isc_modify_user
|
|||
---|---|---|---|
#18+
Симонов ДенисЕдинственный довольно неуклюжий момент это инициализация SYSDBA. Восстановление БД, которая сама себе security тоже забавный трюк. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.02.2016, 13:44 |
|
Проблема с изменением пароля через API функцию isc_modify_user
|
|||
---|---|---|---|
#18+
Через SQL с юзерами работать удобно, но - только если есть БД. А вот если ее пока нет (например, начальная установка), сервисные функции незаменимы. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.02.2016, 17:06 |
|
Проблема с изменением пароля через API функцию isc_modify_user
|
|||
---|---|---|---|
#18+
Го-стхи, заменимы. Небольшой трюк по инициализации security Код: plaintext 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.02.2016, 17:18 |
|
Проблема с изменением пароля через API функцию isc_modify_user
|
|||
---|---|---|---|
#18+
Симонов ДенисГо-стхи, заменимы. Небольшой трюк по инициализации security Код: plaintext 1. 2. 3. 4.
Прикольно :) Хотя и менее универсально: что, если ФБ - 2.5? Имя БД будет другое. А в тройке, насколько я понял, имя этой БД м.б. любым. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2016, 09:57 |
|
Проблема с изменением пароля через API функцию isc_modify_user
|
|||
---|---|---|---|
#18+
Го-стхи, Firebird 3 не поддерживает старые ODS никак. Точнее один способ есть, если найдётся умелец который выдернет движок из 2.5 и обернёт его в API так чтобы получился плагин engine11.2 ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2016, 10:02 |
|
|
start [/forum/topic.php?fid=40&msg=39181200&tid=1562321]: |
0ms |
get settings: |
10ms |
get forum list: |
21ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
43ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
others: | 273ms |
total: | 421ms |
0 / 0 |