Ограничение доступа в LibreOffice Base

Автор Laniya, 22 марта 2017, 17:41

0 Пользователи и 1 гость просматривают эту тему.

Laniya

Здравствуйте. Нужно создать базу данных для лаборатории. По правилам конфиденциальности требуется, чтобы у различных сотрудников был разный доступ к информации.
Допустим:
Сотрудник "А" - регистрирует образцы, шифрует их и передаёт в лабораторию.
"Б" - проводит исследование, заносит результат в Базу, но при этом он не должен иметь возможности открывать таблицу регистрации образцов.

Понятно, что это делается разными формами. Но, во-первых, я нигде не нашла, как можно поставить пароль на таблицу в базе.
Во-вторых, не могу даже запретить редактирование формы. В форме: Файл-Свойства-Безопасность ставлю "только для чтения" и "записывать изменения". Ввожу пароль. Сохраняю, закрываю. Сохраняю базу. Открываю форму в режиме правки - "Этот документ открыт только для чтения" и "Редактировать документ". Нажимаю "Редактировать". Всё работает и пароль не требуется!
Это вообще реально сделать? В идеале нужно прописать в каждом файле разные степени допуска.

П.С. На  одном сайте нашла следующую информацию, но не понимаю, как её применить:
"Чтобы сделать авторизацию, вам для начала нужно создать в базе таблицу с пользователями, куда вы занесете их логин и пароль. Для авторизации вам нужно будет сравнивать введённые данные с теми, что занесены в базу. И если они совпадут, то позволять пользователю работать (открывать форму, например)." (http://libreoffice.su/base/sozdanie-form-libreoffice-base.html  см. комментарии)

Yakov

#1
Добро пожаловать на форум, Laniya!

Для этой задачи лучше всего использовать внешний сервер бд, например MySQL.
И средствами сервера бд реализовать многопользовательский режим. Тогда при подключении к БД из Base необходимо указывать логин/пароль.
А Base использовать в качестве клиента и реализовать на нём формы, отчёты, запросы и т.д.

Laniya

Цитата: Yakov от 22 марта 2017, 21:33Для этой задачи лучше всего использовать внешний сервер бд, например MySQL.
К сожалению, я работой в сервере не владею, и осваивать сейчас нет возможности, да и поручить некому - лаборатория маленькая. Если есть предложения, как это можно устроить с помощью LibreOffice или другим открытым офисом (но не MO Access), с удовольствием выслушаю.

economist

Laniya - если лаборатория маленькая - то делайте это в OpenOffice|LibreOffice Calc или в MS Excel.
Там есть парольная защита на уровне листа, скрытие данных на уровне столбцов, макросы итп.
Плюс есть возможность одновременной работы 3-5 человек в одном файле.

Base нужен только если данных очень много (>100 тыс строк в год) и нужна скорость SQL-запросов.
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

mikekaganski

Видите ли в чём дело.

Вы пишете: "По правилам конфиденциальности требуется, чтобы у различных сотрудников был разный доступ к информации"

В этом месте заключается основная проблема. Конфиденциальность - это очень серьёзно, это не "прикроем фиговым листиком, ну а если сдует - ничего страшного". Применяя средства обеспечения конфиденциальности, Вы должны понимать уровень самих требований (коммерческая тайна, государственная тайна (с тремя степенями секретности), персональные данные, ...), Вашу меру ответственности в этом вопросе, имеющиеся принципы и методы практического обеспечения этих требований (не только программные), требования (законодательные, отраслевые, предприятия...) к средствам, особенности реализации этого в применяемых Вами средствах (если Вы используете открытое ПО) или предоставляемые гарантии производителя (если это коммерческое решение), ....

Это не делается на любительском уровне. Допустим, Вы реализуете что-то по советам на форуме, а завтра какой-нибудь сотрудник обойдёт эту защиту, потому что он прочитает другой форум. Кто несёт ответственность?

Так что в данном вопросе мало использовать средства, имеющие встроенные механизмы для того, что нужно (например, согласно совету Yakov), нужно ещё и хорошо самой разобраться в сути вопроса. Фразы типа "и осваивать сейчас нет возможности" - говорят либо о пренебрежении результатом, либо о ненужности самой реализации.
С уважением,
Михаил Каганский

Laniya

Уважаемый mikekaganski!

Если бы я прятала государственную или коммерческую тайну от сотрудников, я бы, естественно, не обращалась сюда. И вообще не использовала недоработанное бесплатное ПО, а купила бы полный пакет MOffice и наняла профессионала.
Ещё раз говорю - у нас очень маленькая лаборатория, все и так всё знают, без этого невозможно работать. Но правила для всех одинаковые. И, если мы хотим завести электронную базу, а не заполнять без конца сотни бумажных журналов, то эта база должна быть теоретически недоступна не только для посторонних лиц, но и для ряда сотрудников, иначе нас не аккредитуют.

economist

Laniya - пароли Calc, модули StarBasic - невскрываемы.
А вот пароли MS Excel/Access - имеют много путей взлома.
Вы даже не успели понять что Base со своим движком базы данных вам вообще не подходит, т.к. позволяет открыть базу только одному человеку в данный момент. 
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

mikekaganski

Ну почему же. В данном случае ("Но правила для всех одинаковые ... иначе нас не аккредитуют") совмещение варианта внешнего сервера БД (который может быть тут же, на том же компьютере) и Base (как интерфейса) вполне нормально.
С уважением,
Михаил Каганский

greenman

Что-то похожее на взрослую базу данных можно сделать через Данные - Проверка

https://testitquickly.com/2009/01/16/excel-calc-drop-down-list/

http://librerussia.blogspot.ru/2014/10/libreoffice-calc.html

idro

#9
Цитата: Laniya от 22 марта 2017, 15:41"Чтобы сделать авторизацию, вам для начала нужно создать в базе таблицу с пользователями, куда вы занесете их логин и пароль. Для авторизации вам нужно будет сравнивать введённые данные с теми, что занесены в базу. И если они совпадут, то позволять пользователю работать (открывать форму, например)."
Тут вам надо хотя бы Basic встроенный в LibreOffice освоить. На нем такую проверку осуществить легко. Но проблема в том, то сам файл BASE не защищён. Поэтому любо может открыть его напрямую и посмотреть логин\пароль.

А если реализовать доступ к файлам посредством операционной системы ? Сотрудник "А" - пишет данные в сразу в два файлы базы,  при этом доступ к первому файлу имеет только сотрудник "А" , а ко второму сотрудник "Б" имеет права только на чтение. То есть в первом файл полностью  конфиденциальная информация, во втором информация которую можно только читать сотруднику "Б". Ну и сотрудника "Б" свой файл куда он пишет свои данные.