Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Проблема с изменением пароля через API функцию isc_modify_user / 22 сообщений из 22, страница 1 из 1
29.02.2016, 11:46
    #39181189
Проблема с изменением пароля через API функцию isc_modify_user
Доброго дня, при переходе с 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. ")

Может есть какие-то известные варианты, в каком направлении двигаться для поиска решения?
...
Рейтинг: 0 / 0
29.02.2016, 11:47
    #39181190
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с изменением пароля через API функцию isc_modify_user
Константин Розенков,

на фига мучится с API isc_modify_user если можно модифицировать пользователей с помощью SQL?
...
Рейтинг: 0 / 0
29.02.2016, 11:48
    #39181193
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с изменением пароля через API функцию isc_modify_user
Hello, Симонов Денис!
You wrote on 29 февраля 2016 г. 11:48:52:

Симонов Денис> на фига мучится с APIты неправ.
осознай это.

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
29.02.2016, 11:49
    #39181194
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с изменением пароля через API функцию isc_modify_user
Константин Розенков,

бррр... что-то я не понял. Почему тройка к security2.fdb от 2.5 пытается лезть
...
Рейтинг: 0 / 0
29.02.2016, 11:54
    #39181200
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с изменением пароля через API функцию isc_modify_user
Мимопроходящий,

все service API функции по управлению пользователями в тройке объявлены как deprecated и существуют только для обратной совместимости. Но проблема ТСа судя по всему не в них
...
Рейтинг: 0 / 0
29.02.2016, 12:09
    #39181218
Проблема с изменением пароля через API функцию isc_modify_user
Симонов Денис,

База под FB3 RC1 пока только обкатывается, а все остальные на 2.5 и изначально, по возможности, хотелось использовать одну клиентскую библиотеку. (добавление/изменение/удаление пользователей реализовано через функции API)

Но, собственно говоря, проблема с модификацией пользователей всплыла и в связке FB3.0 + fbclient 3
...
Рейтинг: 0 / 0
29.02.2016, 12:17
    #39181228
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с изменением пароля через API функцию isc_modify_user
Константин Розенковв каком направлении двигаться для поиска решения?
Минимально воспроизводимый пример и трекер.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
29.02.2016, 12:23
    #39181236
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с изменением пароля через API функцию isc_modify_user
Константин Розенков,

судя по твоему трейсу ты пытаешься подключится через security2.fdb, т.е. к неродной security БД. Так без танцев с бубном сделать не выйдет.
...
Рейтинг: 0 / 0
29.02.2016, 12:24
    #39181237
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с изменением пароля через API функцию isc_modify_user
Симонов Денисвсе 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()
...
Рейтинг: 0 / 0
29.02.2016, 12:34
    #39181252
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с изменением пароля через API функцию isc_modify_user
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 способа модификации пользователя.
...
Рейтинг: 0 / 0
29.02.2016, 12:48
    #39181285
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с изменением пароля через API функцию isc_modify_user
Симонов Денисвот цитата из 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
...
Рейтинг: 0 / 0
29.02.2016, 12:55
    #39181304
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с изменением пароля через API функцию isc_modify_user
Симонов ДенисThis capability is not supported by either the gsec utility or the
Services API.
По крайней мере в части gsec релиз ноты ошибаются.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
29.02.2016, 12:57
    #39181308
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с изменением пароля через API функцию isc_modify_user
Dimitry Sibiryakov,

и в чём же? добавить sysdba можно и без gsec
...
Рейтинг: 0 / 0
29.02.2016, 13:09
    #39181335
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с изменением пароля через API функцию isc_modify_user
Симонов Дениси в чём же?
В том, что "this capability is not supported by the gsec". Он, конечно, не в состоянии сам
выбрать с какой БД паролей ему работать, но её легко можно указать в командной строке.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
29.02.2016, 13:12
    #39181338
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с изменением пароля через API функцию isc_modify_user
Dimitry Sibiryakov,

а ну да там переключатель есть. Я думал ты споришь что не deprecated
...
Рейтинг: 0 / 0
29.02.2016, 13:24
    #39181355
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с изменением пароля через API функцию isc_modify_user
Симонов ДенисЯ думал ты споришь что не deprecated
Объявить deprecated - это чисто политическое решение разработчиков, которые решили, что их
новое изобретение идеально и работает во всех-всех случаях. Спорить с ними бесполезно.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
29.02.2016, 13:31
    #39181368
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с изменением пароля через API функцию isc_modify_user
Dimitry Sibiryakov,

ну SQL то работать удобнее. В 2.5 некоторых вещей по управлению пользователями через SQL не хватало, например просмотр списка пользователей. В тройке добавили виртуальную таблицу SEC$USERS и проблема ушла. Единственный довольно неуклюжий момент это инициализация SYSDBA.
...
Рейтинг: 0 / 0
29.02.2016, 13:44
    #39181384
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с изменением пароля через API функцию isc_modify_user
Симонов ДенисЕдинственный довольно неуклюжий момент это инициализация SYSDBA.

Восстановление БД, которая сама себе security тоже забавный трюк.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
29.02.2016, 17:06
    #39181700
Го-стхи
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с изменением пароля через API функцию isc_modify_user
Через SQL с юзерами работать удобно, но - только если есть БД. А вот если ее пока нет (например, начальная установка), сервисные функции незаменимы.
...
Рейтинг: 0 / 0
29.02.2016, 17:18
    #39181715
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с изменением пароля через API функцию isc_modify_user
Го-стхи,

заменимы. Небольшой трюк по инициализации security

Код: plaintext
1.
2.
3.
4.
d:\fb\fb30>isql
Use CONNECT or CREATE DATABASE to specify a database
SQL> connect security.db user sysdba;
Database: security.db, User: SYSDBA
SQL>create user sysdba password 'masterkey';
...
Рейтинг: 0 / 0
01.03.2016, 09:57
    #39182133
Го-стхи
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с изменением пароля через API функцию isc_modify_user
Симонов ДенисГо-стхи,

заменимы. Небольшой трюк по инициализации security

Код: plaintext
1.
2.
3.
4.
d:\fb\fb30>isql
Use CONNECT or CREATE DATABASE to specify a database
SQL> connect security.db user sysdba;
Database: security.db, User: SYSDBA
SQL>create user sysdba password 'masterkey';

Прикольно :) Хотя и менее универсально: что, если ФБ - 2.5? Имя БД будет другое. А в тройке, насколько я понял, имя этой БД м.б. любым.
...
Рейтинг: 0 / 0
01.03.2016, 10:02
    #39182138
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с изменением пароля через API функцию isc_modify_user
Го-стхи,

Firebird 3 не поддерживает старые ODS никак. Точнее один способ есть, если найдётся умелец который выдернет движок из 2.5 и обернёт его в API так чтобы получился плагин engine11.2
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Проблема с изменением пароля через API функцию isc_modify_user / 22 сообщений из 22, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]