powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Перенос данных базы security2.fdb -> security3.fdb при переходе FB 2.1 -> FB 2.5 -> FB 3.0
19 сообщений из 19, страница 1 из 1
Перенос данных базы security2.fdb -> security3.fdb при переходе FB 2.1 -> FB 2.5 -> FB 3.0
    #39534724
Walter D.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!

Появилась у меня задача перехода с версии FB 2.1.3 на последнюю доступную версию, FB 3.0.2 (обе установлены на Windows Server 2003 R2). Как промежуточную использую FB 2.5.7, установленную на рядовом компьютере с Win 10 x64. Все FireBird'ы установлены 64-разрядные.
Базы перегнали используя backup-restore из 2.1 в 2.5, затем в 3.0. Проблемы были, но решились удалением/правкой некорректных данных в самих базах. Базы заработали в FB 3.0, все есть.

Далее требуется перенести логины и пароли пользователей, которые хранятся в security2.fdb (около 300 пользователей)
Перегнал базу используя backup-restore на сервер с FB 3.0 (в тестовый каталог), подключился с помощью IBExpert, проверил что данные на месте и всё выглядит так же как и на 2.5 и 2.1
Нагуглил тему на этом форуме, в ней было сообщение со скриптом
затем нашел how-to-migrate-copy-users-from-security2-fdb-firebird-2-5-to-security3-fdb
Так понял этот скрипт предназначен для isql из набора самого FireBird, нашел информацию о том как запустить этот скрипт, сохранил его в файл и адаптировал (скорректировал пути).
Проверил что восстановленная мной база security2.fdb имеет ODS=12.0
С первого раза не вышло т.к. я указал рабочую базу security3.fdb и получил отлуп что нет таких прав у пользователя SYSDBA, выключив сервер FB (остановил службу) скопировал базу в тестовый каталог, запустил службу обратно, скорректировал путь до целевой базы security3.fdb, запустил скрипт и думал что уже всё, но нет... получил ошибку:

ошибкаSQL> input C:\DB\migration.sql;
Database: 'C:\DB\newsecurity3.fdb', User: SYSDBA
Statement failed, SQLSTATE = 22001
arithmetic exception, numeric overflow, or string truncation
-string right truncation
-expected length 32, actual 96
-At block line: 56, col: 5
After line 3 in file C:\DB\migration.sql

Поглядев что у меня в базах через IBExpert увидел разницу в объёмах, отведенных под данные, понял о чем речь в ошибке
security2.fdb скриншот
security3.fdb скриншот

Уважаемые, подскажите как можно выйти из этой ситуации? Может я что-то пропустил или не понимаю?
...
Рейтинг: 0 / 0
Перенос данных базы security2.fdb -> security3.fdb при переходе FB 2.1 -> FB 2.5 -> FB 3.0
    #39534734
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Walter D.,

автор DECLARE VARIABLE FRST VARCHAR(32);
DECLARE VARIABLE MDDL VARCHAR(32);
DECLARE VARIABLE LST VARCHAR(32);
DECLARE VARIABLE USR VARCHAR(128);
DECLARE VARIABLE PASSWD VARCHAR(64);
DECLARE VARIABLE ATTR VARCHAR(4096);
DECLARE VARIABLE UID INT;
DECLARE VARIABLE GID INT;
DECLARE VARIABLE SQL VARCHAR(4096);

чарсет строковым переменным укажи правильный
...
Рейтинг: 0 / 0
Перенос данных базы security2.fdb -> security3.fdb при переходе FB 2.1 -> FB 2.5 -> FB 3.0
    #39534737
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Walter D.Может я что-то пропустил или не понимаю?

Всего одну вещь: миграция пользователей из 2.Х в 3.0 невозможна. Всё, что можно сделать,
это создать их заново с теми же именами.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Перенос данных базы security2.fdb -> security3.fdb при переходе FB 2.1 -> FB 2.5 -> FB 3.0
    #39534741
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

ну почему же в legacy_auth возможна, если надо в srp то всем пользователям придётся пароли заново прописать.
...
Рейтинг: 0 / 0
Перенос данных базы security2.fdb -> security3.fdb при переходе FB 2.1 -> FB 2.5 -> FB 3.0
    #39534745
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Walter D.,

или как минимум выполняй скрипт подключаясь с чарсетом utf-8
...
Рейтинг: 0 / 0
Перенос данных базы security2.fdb -> security3.fdb при переходе FB 2.1 -> FB 2.5 -> FB 3.0
    #39534769
Фотография o_v_a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисDimitry Sibiryakov,
ну почему же в legacy_auth возможна
Ну да, мы это полтора года назад уже выяснили. И по следам статья в IBSurgeon родилась.
Ссылки в первом сообщении про то как раз. Автор на верном пути. Всё сказали уже.
...
Рейтинг: 0 / 0
Перенос данных базы security2.fdb -> security3.fdb при переходе FB 2.1 -> FB 2.5 -> FB 3.0
    #39534775
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
o_v_a,

я же рецепт придумывал
...
Рейтинг: 0 / 0
Перенос данных базы security2.fdb -> security3.fdb при переходе FB 2.1 -> FB 2.5 -> FB 3.0
    #39534824
Фотография o_v_a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага :) Было дело!
...
Рейтинг: 0 / 0
Перенос данных базы security2.fdb -> security3.fdb при переходе FB 2.1 -> FB 2.5 -> FB 3.0
    #39535146
Walter D.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис,

Основная задача в том что мне нужно перенести всех пользователей с их старыми паролями, для временного использования старого варианта авторизации, в дальнейшем наши программисты будут тестировать возможность смены пароля пользователями самостоятельно (чтобы они могли менять пароль когда захотят) + тестировать авторизацию через Active Directory

Симонов Денисили как минимум выполняй скрипт подключаясь с чарсетом utf-8
это относится к isql или к чему-то другому? В README.isql_enhancements.txt не нашел информации

получается мне нужно либо изменить кодировку с которой идет подключение или скорректировать скрипт? что-то подобное в батниках когда приходилось менять кодировки 866 - 1251 если сам батник сохранен в неверной кодировке

Симонов Денисчарсет строковым переменным укажи правильный
Не совсем понимаю как указать UNICODE_FSS если требуется именно это, в приведенном куске кода идет объявление переменных с указанием их имени, типа и размера... или я не туда пошел? )))
...
Рейтинг: 0 / 0
Перенос данных базы security2.fdb -> security3.fdb при переходе FB 2.1 -> FB 2.5 -> FB 3.0
    #39535156
Walter D.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов ДенисWalter D.,

или как минимум выполняй скрипт подключаясь с чарсетом utf-8

нужно добавить в начало скрипта "SET NAMES UTF8" ?
...
Рейтинг: 0 / 0
Перенос данных базы security2.fdb -> security3.fdb при переходе FB 2.1 -> FB 2.5 -> FB 3.0
    #39535162
Walter D.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нашел вот такое сообщение

попробовал указывая UTF-8 до подключения, вот что получил:

консольSQL> SET NAMES UTF8;
SQL> input C:\DB\migration.sql;
Database: 'C:\DB\newsecurity3.fdb', User: SYSDBA
Statement failed, SQLSTATE = 22001
arithmetic exception, numeric overflow, or string truncation
-string right truncation
-expected length 32, actual 35
-At block line: 58, col: 5
After line 3 in file C:\DB\migration.sql

чего-то я недопонимаю)
...
Рейтинг: 0 / 0
Перенос данных базы security2.fdb -> security3.fdb при переходе FB 2.1 -> FB 2.5 -> FB 3.0
    #39535178
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Walter D.,

попробуй указать UNOCDE_FSS. Благо в 4.0 про эту кодировку можно забыть
...
Рейтинг: 0 / 0
Перенос данных базы security2.fdb -> security3.fdb при переходе FB 2.1 -> FB 2.5 -> FB 3.0
    #39535217
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Walter D.-expected length 32, actual 35
это уже лучше. Осталось найти юзера с именем в 35 символов и выкинуть за ненадобностью (ибо права такому юзеру все равно назначить нельзя).
...
Рейтинг: 0 / 0
Перенос данных базы security2.fdb -> security3.fdb при переходе FB 2.1 -> FB 2.5 -> FB 3.0
    #39535224
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitr,

блин точно, в 2.x пользователи теоретически 128 символов могут быть
...
Рейтинг: 0 / 0
Перенос данных базы security2.fdb -> security3.fdb при переходе FB 2.1 -> FB 2.5 -> FB 3.0
    #39535275
Walter D.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Дениспопробуй указать UNICODE_FSS

пробовал, результат тот же

консольSQL> SET NAMES UNICODE_FSS
CON> ;
SQL> input C:\DB\migration.sql;
Database: 'C:\DB\newsecurity3.fdb', User: SYSDBA
Statement failed, SQLSTATE = 22001
arithmetic exception, numeric overflow, or string truncation
-string right truncation
-expected length 32, actual 35
-At block line: 58, col: 5
After line 3 in file C:\DB\migration.sql

dimitrэто уже лучше. Осталось найти юзера с именем в 35 символов и выкинуть за ненадобностью

да, лучше))) Спасибо за наводку, буду искать, такое имеет место быть))
...
Рейтинг: 0 / 0
Перенос данных базы security2.fdb -> security3.fdb при переходе FB 2.1 -> FB 2.5 -> FB 3.0
    #39535281
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Walter D.,

оставляй UTF-8 и ищи длинного пользователя. Как сказал ДЕ права ему всё равно назначить нельзя. Там 31 символом ограничено
...
Рейтинг: 0 / 0
Перенос данных базы security2.fdb -> security3.fdb при переходе FB 2.1 -> FB 2.5 -> FB 3.0
    #39535291
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

ну вот опять. Переносится и вполне успешно в legacy_usermanager. В Srp да не возможно
...
Рейтинг: 0 / 0
Перенос данных базы security2.fdb -> security3.fdb при переходе FB 2.1 -> FB 2.5 -> FB 3.0
    #39535303
Walter D.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Благодарю за подсказки, нашел неадекватно длинную фамилию, порезал её и всё прошло успешно!

консольC:\Windows\system32>"C:\Program Files\Firebird\Firebird_3_0\isql.exe"
Use CONNECT or CREATE DATABASE to specify a database
SQL> SET NAMES UTF8;
SQL> input C:\DB\migration.sql;
Database: 'C:\DB\newsecurity3.fdb', User: SYSDBA

C:\Windows\system32>

При превышении допустимого количества символов в конце автоматически добавляется "SYSDBA"
...
Рейтинг: 0 / 0
Перенос данных базы security2.fdb -> security3.fdb при переходе FB 2.1 -> FB 2.5 -> FB 3.0
    #39535412
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Перепалка DS и Влада отправилась в утиль.
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Перенос данных базы security2.fdb -> security3.fdb при переходе FB 2.1 -> FB 2.5 -> FB 3.0
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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