В типовых решениях BAS предусмотрено разграничение прав доступа пользователей к информации. Система прав доступа позволяет описывать наборы прав, соответствующие должностям пользователей или виду деятельности. Структура прав определяется конкретным прикладным решением.
Кроме этого, для объектов, хранящихся в базе данных (справочники, документы, регистры и т. д.) могут быть определены права доступа к отдельным полям и записям. Например, пользователь может оперировать документами (накладными, счетами и т. д.) определенных контрагентов и не иметь доступа к аналогичным документам других контрагентов.
С одной стороны, это обеспечивает определенную степень информационной безопасности предприятия (пользователю доступна только информация необходимая для выполнения его задач), с другой — облегчает работу пользователям информационной системы (пользователь не видит лишней информации, которая может препятствовать качественному и своевременному выполнению своей работы и оперировать только необходимыми ему данными).
Существует 2 способа разграничения информации. На этапе конфигурирования — более общие права и на этапе ведения учета — более детальные права к определенным записям таблиц. Первый настраивается на этапе конфигурирования системы разработчиками прикладных решений.
Интерактивные и основные права
Все права, поддерживаемые системой BAS, можно разделить на две большие группы: основные и интерактивные. Основные права описывают действия, выполняемые над элементами данных системы или над всей системой в целом, и проверяются всегда, независимо от способа обращения к данным. «Интерактивные права» описывают действия, которые могут быть выполнены пользователем интерактивно. Соответственно проверяются они только при выполнении интерактивных операций стандартными способами, причем в клиент-серверном варианте все проверки прав (кроме интерактивных) выполняются на сервере.
Основные и интерактивные права взаимосвязаны. Например, существует основное право «Удаление», которому соответствуют два интерактивных права: «Интерактивное удаление» и «Интерактивное удаление помеченных». Если пользователю запрещено «Удаление», то и все «Интерактивные удаления» также будут запрещены для него. В то же время, если пользователю разрешено «Интерактивное удаление помеченных», это значит, что «Удаление» ему также разрешается.
Кроме того, основные права могут зависеть друг от друга. В результате образуются довольно сложные цепочки взаимосвязей, которые отслеживаются системой автоматически: как только разработчик снимает разрешение на какое-либо право, система сама снимает разрешения на все права, которые зависят от этого права. И наоборот, при установке какого-либо права разработчиком, система сама устанавливает все права, от которых это право зависит.
Ограничение доступа к данным на уровне записей и полей
Среди действий над объектами, хранящимися в базе данных (справочниками, документами и т. д.), есть действия, отвечающие за чтение или изменение информации, хранящейся в базе данных. К таким действиям относятся:
- чтение — получение записей или их фрагментов из таблицы базы данных;
- добавление — добавление новых записей без изменения существующих;
- изменение — изменение существующих записей;
- удаление — удаление некоторых записей без внесения изменений в оставшиеся.
Для этих действий в процессе настройки ролей могут быть заданы дополнительные условия на данные (ограничение доступа к данным). В этом случае над конкретным объектом, хранимым в базе данных, может быть выполнено запрошенное действие только в том случае, если ограничение доступа к данным для данных этого объекта принимает значение «истина». Аналогичные условия могут быть заданы и для таблиц базы данных, не имеющих объектной природы (регистров).
Параметры сеанса
Параметры сеанса представляют собой объекты прикладного решения, которые предназначены для использования в ограничениях доступа к данным для текущего сеанса (но могут применяться и для других целей). Их значения сохраняются в течение данного сеанса BAS. Использование параметров сеанса позволяет снизить время доступа к данным при ограничении доступа на уровне записей и полей.
Выполнение на сервере без проверки прав
Привилегированные модули
Существует возможность назначения привилегированных модулей. В такие модули могут быть перенесены операции, использующие данные, на которые у текущего пользователя нет прав.
Например, пользователю могут быть назначены права, позволяющие создавать новый документ. Однако никаких прав на регистр, в котором этот документ создает движения при проведении, пользователю не дано. В такой ситуации процедура проведения документа может быть вынесена в привилегированный модуль, который выполняется на сервере без проверки прав. В результате, несмотря на то, что соответствующий регистр для пользователя недоступен, пользователь все же сможет проводить созданные им документы.
Привилегированный режим исполнения программного кода
Использование привилегированного режима позволяет, во-первых, ускорить работу, так как не будут накладываться ограничения на доступ к данным, а во-вторых, позволяет выполнять операции с данными от лица пользователей, которым эти данные недоступны.
Привилегированный режим рекомендуется использовать тогда, когда с логической точки зрения нужно отключить проверку прав, или когда можно отключить проверку прав, чтобы ускорить работу. Допустимо использовать привилегированный режим тогда, когда работа с данными от лица некоторого пользователя не нарушает установленные для этого пользователя права доступа.
С вопросами пожалуйста обращайтесь по телефонам:
В Одессе +38 (0482) 378–396 — прямой; +38 (0482) 343–323 — многоканальный;