|
Перенос данных базы security2.fdb -> security3.fdb при переходе FB 2.1 -> FB 2.5 -> FB 3.0
|
|||
---|---|---|---|
#18+
Всем привет! Появилась у меня задача перехода с версии 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 скриншот Уважаемые, подскажите как можно выйти из этой ситуации? Может я что-то пропустил или не понимаю? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2017, 14:31 |
|
Перенос данных базы security2.fdb -> security3.fdb при переходе FB 2.1 -> FB 2.5 -> FB 3.0
|
|||
---|---|---|---|
#18+
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); чарсет строковым переменным укажи правильный ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2017, 14:44 |
|
Перенос данных базы security2.fdb -> security3.fdb при переходе FB 2.1 -> FB 2.5 -> FB 3.0
|
|||
---|---|---|---|
#18+
Walter D.Может я что-то пропустил или не понимаю? Всего одну вещь: миграция пользователей из 2.Х в 3.0 невозможна. Всё, что можно сделать, это создать их заново с теми же именами. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2017, 14:46 |
|
Перенос данных базы security2.fdb -> security3.fdb при переходе FB 2.1 -> FB 2.5 -> FB 3.0
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, ну почему же в legacy_auth возможна, если надо в srp то всем пользователям придётся пароли заново прописать. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2017, 14:49 |
|
Перенос данных базы security2.fdb -> security3.fdb при переходе FB 2.1 -> FB 2.5 -> FB 3.0
|
|||
---|---|---|---|
#18+
Walter D., или как минимум выполняй скрипт подключаясь с чарсетом utf-8 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2017, 14:51 |
|
Перенос данных базы security2.fdb -> security3.fdb при переходе FB 2.1 -> FB 2.5 -> FB 3.0
|
|||
---|---|---|---|
#18+
Симонов ДенисDimitry Sibiryakov, ну почему же в legacy_auth возможна Ну да, мы это полтора года назад уже выяснили. И по следам статья в IBSurgeon родилась. Ссылки в первом сообщении про то как раз. Автор на верном пути. Всё сказали уже. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2017, 15:12 |
|
Перенос данных базы security2.fdb -> security3.fdb при переходе FB 2.1 -> FB 2.5 -> FB 3.0
|
|||
---|---|---|---|
#18+
o_v_a, я же рецепт придумывал ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2017, 15:18 |
|
Перенос данных базы security2.fdb -> security3.fdb при переходе FB 2.1 -> FB 2.5 -> FB 3.0
|
|||
---|---|---|---|
#18+
Ага :) Было дело! ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2017, 16:23 |
|
Перенос данных базы security2.fdb -> security3.fdb при переходе FB 2.1 -> FB 2.5 -> FB 3.0
|
|||
---|---|---|---|
#18+
Симонов Денис, Основная задача в том что мне нужно перенести всех пользователей с их старыми паролями, для временного использования старого варианта авторизации, в дальнейшем наши программисты будут тестировать возможность смены пароля пользователями самостоятельно (чтобы они могли менять пароль когда захотят) + тестировать авторизацию через Active Directory Симонов Денисили как минимум выполняй скрипт подключаясь с чарсетом utf-8 это относится к isql или к чему-то другому? В README.isql_enhancements.txt не нашел информации получается мне нужно либо изменить кодировку с которой идет подключение или скорректировать скрипт? что-то подобное в батниках когда приходилось менять кодировки 866 - 1251 если сам батник сохранен в неверной кодировке Симонов Денисчарсет строковым переменным укажи правильный Не совсем понимаю как указать UNICODE_FSS если требуется именно это, в приведенном куске кода идет объявление переменных с указанием их имени, типа и размера... или я не туда пошел? ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2017, 08:07 |
|
Перенос данных базы security2.fdb -> security3.fdb при переходе FB 2.1 -> FB 2.5 -> FB 3.0
|
|||
---|---|---|---|
#18+
Симонов ДенисWalter D., или как минимум выполняй скрипт подключаясь с чарсетом utf-8 нужно добавить в начало скрипта "SET NAMES UTF8" ? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2017, 08:34 |
|
Перенос данных базы security2.fdb -> security3.fdb при переходе FB 2.1 -> FB 2.5 -> FB 3.0
|
|||
---|---|---|---|
#18+
нашел вот такое сообщение попробовал указывая 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 чего-то я недопонимаю) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2017, 08:59 |
|
Перенос данных базы security2.fdb -> security3.fdb при переходе FB 2.1 -> FB 2.5 -> FB 3.0
|
|||
---|---|---|---|
#18+
Walter D., попробуй указать UNOCDE_FSS. Благо в 4.0 про эту кодировку можно забыть ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2017, 09:32 |
|
Перенос данных базы security2.fdb -> security3.fdb при переходе FB 2.1 -> FB 2.5 -> FB 3.0
|
|||
---|---|---|---|
#18+
Walter D.-expected length 32, actual 35 это уже лучше. Осталось найти юзера с именем в 35 символов и выкинуть за ненадобностью (ибо права такому юзеру все равно назначить нельзя). ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2017, 10:28 |
|
Перенос данных базы security2.fdb -> security3.fdb при переходе FB 2.1 -> FB 2.5 -> FB 3.0
|
|||
---|---|---|---|
#18+
dimitr, блин точно, в 2.x пользователи теоретически 128 символов могут быть ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2017, 10:35 |
|
Перенос данных базы security2.fdb -> security3.fdb при переходе FB 2.1 -> FB 2.5 -> FB 3.0
|
|||
---|---|---|---|
#18+
Симонов Дениспопробуй указать 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 символов и выкинуть за ненадобностью да, лучше))) Спасибо за наводку, буду искать, такое имеет место быть)) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2017, 11:47 |
|
Перенос данных базы security2.fdb -> security3.fdb при переходе FB 2.1 -> FB 2.5 -> FB 3.0
|
|||
---|---|---|---|
#18+
Walter D., оставляй UTF-8 и ищи длинного пользователя. Как сказал ДЕ права ему всё равно назначить нельзя. Там 31 символом ограничено ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2017, 11:53 |
|
Перенос данных базы security2.fdb -> security3.fdb при переходе FB 2.1 -> FB 2.5 -> FB 3.0
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, ну вот опять. Переносится и вполне успешно в legacy_usermanager. В Srp да не возможно ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2017, 12:10 |
|
Перенос данных базы security2.fdb -> security3.fdb при переходе FB 2.1 -> FB 2.5 -> FB 3.0
|
|||
---|---|---|---|
#18+
Благодарю за подсказки, нашел неадекватно длинную фамилию, порезал её и всё прошло успешно! консоль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" ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2017, 12:23 |
|
|
start [/forum/topic.php?fid=40&msg=39534737&tid=1561387]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
53ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 10ms |
total: | 154ms |
0 / 0 |