powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Проблема с изменением пароля через API функцию isc_modify_user
22 сообщений из 22, страница 1 из 1
Проблема с изменением пароля через API функцию isc_modify_user
    #39181189
Доброго дня, при переходе с 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
Проблема с изменением пароля через API функцию isc_modify_user
    #39181190
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин Розенков,

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

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

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

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

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

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

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

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

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

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

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

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

заменимы. Небольшой трюк по инициализации 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
Проблема с изменением пароля через API функцию isc_modify_user
    #39182133
Го-стхи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов ДенисГо-стхи,

заменимы. Небольшой трюк по инициализации 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
Проблема с изменением пароля через API функцию isc_modify_user
    #39182138
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Го-стхи,

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


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