Как сохранить пользовательский ACL при резервном копировании / восстановлении eXist-db - PullRequest
0 голосов
/ 14 мая 2019

Я обновляю базу данных с eXist 2.2 до 4.5. Я использовал Java Admin Client для создания резервной копии всей базы данных eXist 2.2. У меня установлена ​​свежая установка eXist 4.5.

Я переместил ZIP и сделал восстановление.

Когда я перемещаюсь по базам данных и проверяю, я вижу очевидную проблему (по крайней мере для меня), поскольку я широко использую ACL для групп с определенным доступом к компонентам.

Изучение этих проблем показывает:

enter image description here

Слева новый сервер, справа старый сервер. Все пользовательские списки ACL, отмеченные знаком «+» рядом с файлами, исчезли. Это происходит только в одной коллекции, в которой во время восстановления сообщалось об ошибке, которую нельзя было установить.

Теперь, в этой коллекции есть только около 40 файлов, нуждающихся в пользовательских ACL, так что исправить это не ОГРОМНО, но вопрос в том, почему или мы сделали что-то не так? Я хотел бы отметить, что многие другие папки не имели этой проблемы, и все разрешения были установлены.

Обновление на основе вопросов:

Похоже, группа пользователей отсутствует ... и я думаю, я знаю, почему 2019-05-17 21: 50: 13,226 [java-admin-client-0.restore] ОШИБКА (CollectionDeferredPermission.java [применить]: 65) - ОШИБКА: не удалось установить разрешения для коллекции '/ db / EIDO / data / edit ». org.xmldb.api.base.XMLDBException: не удалось вызвать метод setPermissions в классе org.exist.xmlrpc.RpcConnection: разрешение на изменение разрешений для пользователя 'admin' в '/ db / EIDO / data / edit' отказано: группа пользователей для группы «NA_Territory» неизвестно. в org.exist.xmldb.RemoteUserManagementService.setPermissions (RemoteUserManagementService.java:187) ~ [exist.jar: 4.5.0] в org.exist.backup.restore.CollectionDeferredPermission.apply (CollectionDeferredPermission.java:56) ~ [exist.jar: 4.5.0] в org.exist.backup.restore.RestoreHandler.setDeferredPermissions (RestoreHandler.java:465) ~ [exist.jar: 4.5.0] в org.exist.backup.restore.RestoreHandler.endElement (RestoreHandler.java:137) ~ [exist.jar: 4.5.0] at org.apache.xerces.parsers.AbstractSAXParser.endElement (неизвестный источник) ~ [xercesImpl-2.11.0.jar :?] at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement (Неизвестно, так что

1 Ответ

1 голос
/ 18 мая 2019

Таким образом, если резервная копия, которую вы пытаетесь восстановить, не содержит коллекцию безопасности (/ db / system / security / существующие), а другие ресурсы в резервной копии зависят от определенных там пользователей / групп, которых нет вна сервере, на который вы импортируете резервную копию, тогда вы увидите такие ошибки.

Вы должны либо включить коллекцию безопасности в свою резервную копию, либо просто пользователей / группы, которые вам также необходимо резервировать и восстанавливать.

...