СПОСОБ ПРОВЕДЕНИЯ МИГРАЦИИ И РЕПЛИКАЦИИ ДАННЫХ С ИСПОЛЬЗОВАНИЕМ ТЕХНОЛОГИИ ЗАЩИЩЕННОГО ДОСТУПА К БАЗЕ ДАННЫХ
METHOD FOR CONDUCTING MIGRATION AND DATA REPLICATION USING SECURED DATABASE ACCESS TECHNOLOGY

Область техники, к которой относится изобретение
Заявленное изобретение относится к вычислительным системам, а именно к способу, который связан с компьютерными базами данных (БД) и электронными хранилищами для осуществления настройки защищенного доступа к базе данных при проведении миграции и репликации данных.
Уровень техники
а) Описание аналогов
Известен способ слияния данных и обеспечения информации в компьютерной системе по патенту РФ №2012122603 «способ слияния данных и обеспечения информации в компьютерной системе», (класс G06Q 10/00, заявл. 01.06.2012). В известном способе осуществляют сведение информации о техническом изделии из базы данных и информационных данных об изделии в один набор данных объединенного руководства процессом.
Недостатком данного способа является:
специализированный и узконаправленный круг решаемых задач;
отсутствие механизмов, обеспечивающих защищенность хранимой в базе данных информации;
данный способ подходит только для решения задачи слияния баз данных однотипного типа.
Известна электронная база данных и способ ее формирования по патенту РФ №0002650032 «Электронная база данных и способ ее формирования », (класс G06F 17/30, заявл. 20.03.2017). Известный способ позволяет осуществить формирование электронной базы данных, данные которой организуют единственную таблицу. Формируют строки, отображающие корневой элемент, тип данных, термин, реквизит термина и данные. Сохраняют первый идентификационный номер, уникальный идентификационный номер типа данных, отличающийся от первого идентификационного номера, наименование используемого типа данных, код типа данных, уникальный идентификационный номер термина, наименование термина, код используемого типа данных, уникальный идентификационный номер реквизита термина, идентификационный номер родительского элемента реквизита термина, зависящего от родительского элемента, уникальный идентификационный номер данных, идентификационный номер родительского элемента, данные, зависящие от родительского элемента, и уникальный код типа данных. Недостатком данного способа является:
специализированный и узконаправленный круг решаемых задач;
отсутствие механизмов, обеспечивающих защищенность хранимой в базе данных информации.
Известен способ создания трассы при миграции данных, опубликованный в сборнике научных статей «Системные технологии», выпуск №21 от 2016 г. стр. 51-54. Известный способ позволяет создавать трассы миграции данных между реляционными базами данных, с использованием технологии SQL, методом формирования XML-конфигурационного файла.
Недостатком данного способа является:
специализированный и узконаправленный круг решаемых задач; отсутствие механизмов, обеспечивающих безопасность информации, хранимой в БД;
решение задачи возможно только в случае использования однотипных баз данных.
б) Описание ближайшего аналога (прототипа)
разр
1
2
n
разр
1
2
n
paзр
1
2
m
Наиболее близким по своей технической сущности к заявленному является способ защищенного доступа к БД по патенту РФ №2709288 «Способ защищенного доступа к базе данных», (класс G06F 21/62, заявл. 26.07.2004, опубл. 17.12.2019 бюл. №35). Способ-прототип включает следующую последовательность действий. Технический результат достигается за счет того, что предварительно задают разрешенные IP-адреса, HWID-номера и роли пользователей структурных элементов автоматизированной системы в виде множеств IР={IP, IP, …, IP}, H={H, H, …, H) и R={R, R, …, R} для повышенной проверки прав доступа к БД, а после приема информации, включающей в себя запрос и пользовательский контекст, сравнивают значения IP-адресов, HWID-номеров и ролей пользователей из пользовательского контекста с множеством разрешенных IP-адресов, HWID-номеров и ролей пользователей в запоминающем устройстве. В случае если хотя бы одно из условий не удовлетворяется, то формируют сигнал тревоги и выводят информацию в соответствии с правом доступа, а при удовлетворении всех условий переходят к выбору строки, подлежащей рассмотрению при построении результата запроса, а при отсутствии строк в таблице БД выполняют преобразование результата запроса в соответствии с заданной функцией преобразования F(x) по ключу X и выводят результат запроса в соответствии с правом доступа в закодированном виде.
По сравнению с аналогами, способ-прототип может быть использован в более широкой области применения, в том числе и для многомерных структур БД, а также сбора миграционных данных из различных источников генерации данных для дальнейшей их эксплуатации и безопасного хранения.
Недостатками прототипа являются:
1. Отсутствие возможности автоматического приема и распределения по таблицам потоков данных, поступающих от различных источников данных.
2. Неспособность взаимодействия с базам данных, реализация которых не поддерживает технологию SQL.
3. Отсутствие механизма автоматической настройки механизмов защищенного доступа к базе данных при проведении миграции и репликации данных.
В настоящем изобретении предложен способ, позволяющий устранить выявленные недостатки.
Раскрытие изобретения (его сущность)
а) технический результат, на достижение которого направлено изобретение
Целью заявленного технического решения является разработка способа автоматической настройки механизмов защищенного доступа к базе данных при проведении миграции и репликации данных между базами данных различных типов, позволяющего осуществить обогащение банка данных долговременного хранения данными, хранящимися базах данных оперативного хранения.
б) совокупность существенных признаков
Способ автоматической настройки механизмов защиты защищенного доступа к базе данных при проведении миграции и репликации данных с использованием защищенного доступа к базе данных заключается в том, что принимают информацию, включающую в себя запрос и пользовательский контекст, выбирают строку, подлежащую рассмотрению при построении результата запроса, сравнивают дескриптор защиты строк с дополнительно заданными списками разрешенных IP-адресов, HWID-номеров и ролей пользователей структурных элементов автоматизированной системы с информацией из пользовательского контекста и в случае их несовпадения проверяют наличие оставшихся строк в таблице базы данных, а при их совпадении проверяют вклад строки базы данных в результат запроса и при его отсутствии переходят к выбору строки, подлежащей рассмотрению при построении результата запроса, а в случае его наличия используют упомянутую строку при построении результата запроса и проверяют наличие оставшихся строк в таблице базы данных, в случае их наличия переходят к выбору строки, подлежащей рассмотрению при построении результата запроса, а при их отсутствии выводят результат запроса в соответствии с правом доступам выполнением преобразования результата запроса методом кодирования в соответствии с заданной функцией преобразования F(x) по ключу X, получаемому от Удостоверяющего Центра.
i
i
x
i
i
i
Дополнительно, для реализации переноса данных, принимают информацию из конфигурационного файла, включающую в себя исходные данные для формирования запроса к удаленной и локальной базе данных, формируют словарь конфигурационных данных D, устанавливают маркер итерации i изначально равный 0 и флаг достижения конца таблицы К, изначально равный 0, после чего проводится проверка наличия флага последнего запроса R для текущего значения x: если значение последнего запроса отсутствует, то ему присваивается значение 0, если значение последнего запроса имеется, то оно остается без изменений; после чего происходит перенос значения флага последнего запроса в буфер обмена, после чего производится проверка состояния буфера обмена: если в буфере обмена отсутствуют записи для переноса в местную базу данных, то формируется и отправляется запрос на получение данных из строки R удаленной базы данных, при этом, если от базы данных получен ответ, который не содержит значение X для R, то происходит переход к шагу увеличения значения итератора на 1, а если ответ, который содержит значение X для R, то полученное значение переносится в буфер обмена, и проводит проверку наличия следующей строки путем формирования запроса к удаленной базе данных: если в базе данных не обнаружено наличие следующей строки R+1, то происходит присвоение флагу достижения конца таблицы К значения, равного 1, после чего происходит увеличение значения R флага последнего запроса на 1, и возврат к операции переноса в буфер обмена значения флага последнего запроса; если же в буфере обмена имеются данные для переноса в местную базу данных, то формируется запрос на внесение данных из буфера обмена в местную базу данных и внесение дескрипторов защиты, после чего происходит удаление данных из буфера обмена и проводится проверка значение флага достижения конца таблицы: если значение этого флага не равно 1 то происходит возврат к операции проверки наличия в буфере обмена наличия данных для переноса в местную базу данных, а если значение флага равно 1, то происходит увеличение значения маркера итерации i на 1; после чего происходит проверка наличия значения X: если значение X, существует, то происходит возврат к операции установления начального значения флага достижения конца таблицы K равное 0: если значение X не существует, происходит завершение работы.
Сопоставительный анализ заявляемого решения с прототипом показывает, что предлагаемый способ отличается от известного:
- наличием дополнительного блока, способного провести репликацию и миграцию данных в базу данных с автоматической настройкой механизма защищенного доступа к базе данных;
- заданием конфигурационного файла, содержащего в себе значения, необходимые для формирования запроса на получения данных из удаленной базы данных и формирования запроса на внесение данных в локальную базу данных и автоматизированного задания списка разрешенных IP-адресов, HWID-номеров и ролей пользователей структурных элементов автоматизированной системы;
- использованием буфера обмена для временного хранения значения переносимых данных;
- использованием буфера обмена для хранения указателей действующего (или последнего) запроса к удаленной базе данных;
- наличия механизма автоматического определения достижения последнего значения в базе данных.
в) причинно-следственная связь между признаками и техническим результатом
Благодаря новой совокупности существенных признаков в заявленном способе расширяется функционал работы защищенной базы данных, позволяющий организовать безопасное хранения данных, поступающих от разнородных источников, без утраты показателей оперативности обработки запросов к защищенной базе данных, с обеспечением доступа к БД, защищенного от атак внутреннего нарушителя посредством проверки идентификационного номера физического оборудования и логических адресов устройств, с которых осуществляется доступ, а также снижение вычислительной нагрузки на БД путем предварительной повышенной проверки ролей пользователей на право формирования данного запроса, и повышение защищенности информации в БД от внешнего нарушителя посредством кодирования выводимого результата запроса.
Проведенный анализ уровня техники позволил установить, что аналоги, характеризующиеся совокупностью признаков, тождественных всем признакам заявленного технического решения, отсутствуют, что указывает на соответствие заявленного способа условию патентоспособности «новизна».
Результаты поиска известных решений в данной и смежных областях техники с целью выявления признаков, совпадающих с отличительными от прототипа признаками заявленного объекта, показали, что они не следуют явным образом из уровня техники. Из уровня техники также не выявлена известность отличительных существенных признаков, обусловливающих тот же технический результат, который достигнут в заявляемом способе. Следовательно, заявленное изобретение соответствует условию патентоспособности «изобретательский уровень».
Краткое описание чертежей
Заявленный способ поясняется чертежами, на которых показаны:
фиг. 1 - блок-схема способа защищенного доступа данных;
фиг. 2 - схема возможной таблицы базы данных;
фиг. 3 - схема возможной таблицы дескриптора защиты;
фиг. 4 - алгоритм проведения миграции и репликации данных с использованием технологии защищенного доступа к базе данных;
фиг. 5 - алгоритм кодирования таблицы в соответствии с заданной функцией преобразования F(x) по ключу X;
фиг. 6 - таблица базы данных с заданными информационными полями;
фиг. 7 - таблица дескриптора защиты с заданными параметрами в базе данных;
фиг. 8 - таблица базы данных с заданными временными параметрами;
фиг. 9 - таблица базы данных с множествами разрешенных IP-адресов, HWID-номеров и ролей пользователей.
Осуществление изобретения
Реализация заявленного способа объясняется следующим образом.
Для получения данных, которые необходимо сохранить в защищенной базе данных, формируется запрос на получение данных к удаленной базе данных, с учетом ее особенностей с использованием подходящих модулей взаимодействия. Полученное от удаленного сервера значение сохраняется в буфере базы данных приемной стороны, анализируется и разделяется на поля, в соответствии со схемой хранения данных на приемной стороне. После чего происходит запись полученных значений в таблицы базы данных приемной стороны.
При осуществлении записи в строку хранения также добавляются следующие атрибуты, полученные из конфигурационного файла и необходимые для осуществления защиты данных: список разрешенных IP-адресов, HWID-номеров, ролей пользователей, и информация о защите в следующем виде:
запоминающее устройство хранит множества разрешенных IP-адресов, HWID-номеров, ролей пользователей, информации о защите, воплощенную посредством одного или более дескрипторов защиты. Каждое множество IP-адресов, HWID-номеров, ролей пользователей и дескрипторов защиты управляет избирательным доступом к одному или более источникам, которые с ними связаны.
IP-адрес - это число, которое позволяет уникально идентифицировать узел компьютерной сети. Одним словом - это идентификатор с которым вы можете переходить по сетям и обмениваться информацией с различными сервисами и устройствами. Адрес представляет собой четыре октета (8 двоичных разрядов) разделенных точкой - общая длинна 32 бита. Сам по себе IP-адрес состоит из сетевой и хостовой частей, по которой определяется номер сети и номер узла.
Hardware ID (HWID) - это идентификатор компьютера, который формируется на основании данных об оборудовании. В комплекс этих данных входят многие компоненты, такие как материнская плата, оперативная память, процессор, жесткие диски и так далее. В результате для каждого компьютера формируется свой уникальный идентификатор. Не исключены редкие совпадения, но это сотые доли процента в общей массе компьютеров. При изменении конфигурации оборудования ПК (добавление нового диска, оперативной памяти, переустановка ОС и пр.) меняется и идентификатор компьютера HWID и доступ к БД может быть прекращен из-за внесения изменений в состав оборудования.
Информация о защите, воплощенная во множестве разрешенных IP-адресов, может включать в себя, например, список пунктов, в которых указывается: (1) разрешенный сетевой IP-адрес узла; (2) тип доступа  (например, полный доступ, только для считывания и/или смешанный доступ, а также запрет на доступ множеству IP-адресов).
Информация о защите, представленная в виде множества разрешенных HWID-номеров аппаратного обеспечения пользователя, может включать в себя, например, список пунктов, в которых указывается: (1) разрешенный HWID-номер, который поступает в пользовательском контексте, совместно с запросом на поиск информации в БД; (2) тип доступа (например, полный доступ, только для считывания и/или смешанный доступ), который может также дублироваться при настройке множества разрешенных IP-адресов.
Информация о защите, воплощенная во множестве разрешенных ролей пользователей, может включать в себя, например, список пунктов, в которых указывается: (1) роль пользователя (например, начальник отдела, служащий, программист); (2) тип доступа (например, полный доступ, только для считывания и/или смешанный доступ).
Информация о защите, воплощенная в дескрипторе защиты, может включать в себя, например, список пунктов, в которых указывается: (1) разрешен или запрещен доступ; (2) тип доступа (например, разрешение, скажем, только считывания и/или считывания и доступа); и (3) принципал, к которому применяется информация о защите. Например, запоминающее устройство может быть упорядоченным набором объектов управления доступом.
Процессор БД принимает информацию запроса от пользователя. Информация запроса включает в себя запрос, который надлежит выполнить в БД, и пользовательский контекст, связанный с инициатором запроса (например, имя пользователя, идентификатор пользователя и/или тип пользователя, IP-адрес пользователя, HWID-номер, роль пользователя и дескриптор защиты пользователя).
В настоящем изобретении предусматривается, что после получения запроса и пользовательского контекста, до начала выборки информации в БД для построения результата запроса, осуществляется проверка прав доступа на 2-м, 3-м, 7-м уровне сетевой модели OSI (англ. open systems interconnection basic reference model - базовой эталонной модели взаимодействия открытых систем (ЭМВОС)), что предотвращает несанкционированный доступ к информации должностных лиц, не имеющих на то права.
В настоящем изобретении предусматривается автоматическое наполнение базы данных информацией, получаемой из взаимодействующих баз банных (в том числе реализованных без использования SQL-подобных технологий) с использованием механизма защищенного доступа к базе данных.
Чтобы достичь вышеуказанных и связанных целей, концепция настоящего изобретения представлена в нижеследующем описании и прилагаемыми чертежами. Эта концепция характеризует различные пути, которыми можно воплотить принципы изобретения, а настоящее изобретение следует считать включающим в себя все такие аспекты и их эквиваленты.
Доступ к наборам объектов, хранящимся в таблицах, возможен как с помощью языка обработки наборов (например, SQL - языка структурированных запросов), так и с помощью сценариев, позволяющих получить доступ к необходимой информации в форме строки (например, сценарии оболочки SSH). Язык SQL обеспечивает задание одной или более таблиц в качестве источника данных и выдачу - если она вообще происходит - только той строки или тех строк, которая или которые удовлетворяют некоторому заданному условию. Сценарии оболочки SSH обеспечивает задание одного или более файла (базы данных) в качестве источника данных и выдачу - если она вообще происходит - только той строки или тех строк, которая или которые удовлетворяют некоторому заданному условию.
Термины «компонент», «программа обработки», «модель», «система» и т.п. в том смысле, в каком они употребляются в данной заявке, следует считать относящимися к связанному с компьютером объекту либо аппаратному обеспечению, комбинации аппаратного обеспечения и программного обеспечения, программному обеспечению или находящемуся в стадии выполнения команд программному обеспечению. Например, компонентом может быть - но не в ограничительном смысле - процесс, идущий на процессоре, процессор, объект, исполняемый файл, поток выполняемых задач, программа и/или компьютер. В качестве иллюстрации отметим, что компонентом может быть и активное приложение на сервере, и сам сервер. Один или более компонентов могут постоянно участвовать в реализации процесса и/или потока выполняемых задач, а некоторый компонент может быть локализован на одном компьютере и/или распределен между двумя или более компьютерами. Кроме того, эти компоненты могут работать от различных считываемых компьютером носителей, имеющих различные структуры данных, записанные на них. Компоненты могут осуществлять связь посредством локальных и/или дистанционных процессов, например, в соответствии с сигналом, имеющим один или более пакетов данных (например, данных из одного компонента, взаимодействующего с другим компонентом в локальной системе, распределенной системе, и/или взаимодействующего через сеть, такую как Internet, с другими системами посредством этого сигнала). В соответствии с настоящим изобретением компьютерные компоненты можно хранить, например, на считываемых компьютером носителях, включая - но не в ограничительном смысле - интегральную схему прикладной ориентации (ASIC), компакт-диск (CD), цифровой видеодиск (DVD), постоянную память (ROM), флеш-диск, жесткий диск, электрически стираемую программируемую постоянную память (EEPROM) и память типа "memory stick".
В общем случае структурные элементы автоматизированной системы (АС) представляют собой совокупность автоматизированных рабочих мест должностных лиц, БД, коммуникационного оборудования, объединенных проводными и беспроводными линиями связи, позволяющих осуществить доступ к базе данных.
i
разр
i
разр
i
разр
Блок-схема 100 последовательности операций способа защищенного доступа к БД, на фиг. 1 обеспечивает защищенный доступ к БД 180 на основе блока 110 повышенной проверки прав доступа на 2-м, 3-м и 7-м уровне модели OSI, сверки логических адресов сети, физических номеров оборудования и ролей пользователей формирователей запроса с множеством доверенных IP-адресов, HWID-номеров и ролей пользователей, хранящихся в запоминающем устройстве 170 и обладает модулем миграции данных 105, позволяющим произвести транспортировку данных из внешней базы данных 104. Блок 110 повышенной проверки прав доступа позволяет сравнить значение IP-адреса i-го структурного элемента IP АС из пользовательского контекста с значениями IP-адресов из множества IР, значение HWID-номера i-го структурного элемента H АС из пользовательского контекста с значениями HWID-номеров из множества Н, значение роли пользователя i-го структурного элемента R АС из пользовательского контекста с значениями ролей пользователей из множества R, в случае, если данные условия не удовлетворяют заданным параметрам - формируют сигнал тревоги, в случае, если условия проверки удовлетворяют параметрам - осуществляют обращение к БД для выбора строки, подлежащей рассмотрению при построении результата запроса.
Когда формулируется запрос в запросный компонент 120, блок 130 оптимизации запросов может определить «наилучший способ» («оптимизацию») ответа на этот запрос. Например, запросный компонент 120 может применить стратегию оптимизации по затратам, вследствие чего в качестве плана выбирается наиболее дешевый способ выполнения запроса, либо стратегию оптимизации по временному (темпоральному) отрезку, вследствие чего происходит отбор через таблицу времени, что, в свою очередь, сокращает время доступа к необходимой информации.
Запросный компонент 120 может применять известные технологии при перечислении возможных планов и отсекать дорогостоящие. Индексы в таблицах играют важную роль в уменьшении затрат на доступ к данным в этих таблицах. Следует принять во внимание, что можно применить процесс оптимизации любого типа, пригодный для осуществления настоящего изобретения, и все такие типы технологий оптимизации следует считать находящимися в рамках объема притязаний прилагаемой формулы изобретения.
Следует принять во внимание, что запросный компонент 120, блок 130 оптимизации запросов и/или блок 140 выполнения запросов могут быть компьютерными компонентами в том смысле, в котором этот термин определен в данном описании.
Важно, что когда осуществляется доступ к строкам таблицы, защищенным алгоритмом защиты в форме дескрипторов защиты, процессор 150 БД - как раз перед рассмотрением строк на предмет ввода при построении результата опроса - вынуждает выполнение алгоритма защиты путем подтверждения того, что инициатор запроса имеет разрешение считывать строки, на основании стратегии, определенной дескриптором защиты, связанным с каждой строкой.
Чтобы пресечь проблему несанкционированного доступа к БД в корне и в то же время не нарушить процесс оптимизации, в настоящем изобретении предложен новый алгоритм, предусматривающий в каждой таблице наличие столбца, имеющего дескрипторы защиты, а также выполнения повышенная проверка прав доступа на 2-м, 3-ми 7-м уровне модели OSI, посредством сверки логических адресов сети, физических номеров оборудования и ролей пользователей формирователей запроса со списком доверенных адресов, номеров и ролей, хранящихся в запоминающем устройстве 170.
Кэш 160 сеансов пользователей хранит вычисленный результат, обусловленный тем, имеет ли текущий контекст защиты заданное разрешение относительно некоторого IP-адреса, HWID-номера, роли пользователя и дескриптора защиты. Следовательно, результат проверки того, имеет ли принципал доступ к объекту, заданным данными критериями защиты этого объекта, оценивается только по поступлению запроса. Если две строки таблицы имеют одну и ту же стратегию защиты, т.е. имеют один и тот же дескриптор защиты, результат проверки того, имеет инициатор запроса доступ к строке или нет, оценивается в первый раз, и этот результат сохраняется в кэш 160. Кэшированный результат применяется для второй строки.
Кэш 160 становится исключительно полезным средством, когда много строк имеют один и тот же алгоритм защиты, что может иметь место, например, в файловых системах и аналогичных приложениях.
Следует принять во внимание, что кэш сеансов пользователя может быть компьютерным компонентом в том смысле, в котором этот термин определен в данном описании.
Процессор 150 БД принимает информацию запроса, например, от пользователя. Информация запроса включает в себя запрос, который надлежит выполнить в БД 180, и пользовательский контекст, связанный с инициатором запроса (например, имя пользователя, идентификатор пользователя и/или тип пользователя, IP-адрес пользователя, HWID-номер и роль пользователя).
При выполнении запроса процессор 150 БД принимает от запросного компонента информацию запроса. Информация запроса включает в себя запрос, который надлежит выполнить в БД, и пользовательский контекст, связанный с инициатором запроса (например, имя пользователя, идентификатор пользователя и/или тип пользователя, IP-адрес формирователя запроса, HWID-номер оконечного оборудования, роль пользователя в иерархической структуре).
Процессор БД сверяет IP-адрес пакета с разрешенным IP-адресом, хранящимся в запоминающем устройстве, сверяет HWID-номер оборудования с разрешенным НЖЯ)-номером, хранящимся в запоминающем устройстве, проверяет роль пользователя, формирователя запроса, имел ли право пользователь формировать запрос к БД или нет? Если хотя бы одно из условий не удовлетворяется, то формируют сигнал тревоги 415 и выводят информацию в соответствии с правом доступа 480.
Если все условия выполняются, то процессор БД оценивает дескриптор защиты, связанный со строкой (строками) БД 180, к которой (которым) осуществляется доступ, и информацию пользовательского контекста, связанную с запросом, чтобы определить, запросил ли пользователь доступ к строке. После этого процессор 150 БД обеспечивает ответ на информацию запроса на основании этого запроса и - что важно - информации пользовательского контекста. Таким образом, инициатору запроса предоставляется информация только из той БД 180, права доступа (например, просмотра и/или изменения данных) к которой имеет пользователь.
БД 180 хранит данные в структурированном формате. Например, БД 180 может быть реляционной БД, объектной БД и/или объектно-реляционной БД, а также темпоральной БД. В связи с реляционными БД отметим, что набор объектов с одной и той же структурой называют таблицей, а каждый объект называют строкой. Компоненты структуры называют столбцами. Реляционная БД может включать в себя одну таблицу или совокупность таблиц.
Данные в БД почти всегда неразрывно связаны со временем. Это верно и для транзакционных БД, и тем более для аналитических БД (в частности, время является важнейшим измерением OLAP-кубов).
В соответствии с аспектом настоящего изобретения, по меньшей мере, одна из таблиц, связанная с БД 180, включает в себя столбец, в котором хранится информация о защите, скажем, дескриптор защиты (например, идентификатор, связанный с информацией о защите, хранящийся в запоминающем устройстве 170, рассматриваемом ниже).
Обращение к БД может производиться как обычными SQL-запросами, так и темпоральными TSQL-запросами. В случае формирования темпорального запроса сокращается время поиска информации в БД посредством указания периода времени, затрагивающего необходимое событие.
Одним из наиболее важных вопросов при использовании БД является эффективность работы приложений с соответствующей СУБД. Для повышения скорости обработки запросов в реляционных СУБД традиционно применяются индексы для выборки данных из таблиц, а также статистики и различные эвристики при выборе алгоритма соединения данных из нескольких таблиц. При разработке темпоральных СУБД значительное внимание уделялось именно вопросам производительности, так как в общем случае небольшая доля «активных» данных из постоянно растущего объема информации в БД приводила к резкому спаду производительности при интенсивном использовании и/или недостаточном внимании при разработке приложения.
Можно использовать три типа темпоральных таблиц - темпоральные таблицы с программным периодом, темпоральные таблицы с системным периодом и битемпоральные таблицы, сочетающие в себе все характеристики первых двух типов. Использование темпоральных таблиц позволяет упростить сервисную логику приложения, предоставлять информацию для аудита изменений в данных, корректировать ошибки в данных, а также увеличить время доступа к данным.
В традиционных реляционных БД алгоритмы защиты не связаны со строками в таблицах. Так, в соответствии с аспектом настоящего изобретения, чтобы указать, что строки в некоторой конкретной таблице БД защищены с помощью стратегии защиты, операторы SQL для создания и замены таблиц расширены для указания этого факта. Один из столбцов в определении этих таблиц расширен по выбору некоторым атрибутом, который указывает, что этот столбец воплощает алгоритм защиты. Значение этого столбца относится к идентификационному параметру некоторого дескриптора защиты, рассмотренного ранее (например, четырехбайтного кода). В одном примере, если значение столбца представляет собой «нуль», то строка не защищена никакой стратегией. С другой стороны, стратегия управления доступом для этой строки выбирается на основе соответствующего дескриптора защиты и связанной с ним информации, хранящейся в запоминающем устройстве 170. В еще одном примере значение по умолчанию столбца можно задать как идентификационный параметр дескриптора защиты, который воплощает стратегию защиты в таблице.
Следует принять во внимание, что система 100, процессор 150 БД, 180 БД и/или запоминающее устройство 170 могут быть компьютерными компонентами в том смысле, в котором этот термин определен в данном описании.
Блок 190 выполняет преобразование выводимой информации методом кодирования в соответствии с заданной функцией преобразования F(x) по ключу X, получаемому от Удостоверяющего Центра (УЦ).
Пользователи УЦ самостоятельно осуществляют процедуру генерации ключей и формирование запросов на сертификат открытого ключа. Выполнение этих процедур осуществляется с использованием АРМ зарегистрированного пользователя на рабочем месте.
Поступающие запросы на сертификаты открытых ключей пользователей обрабатываются администратором УЦ с использованием АРМ администратора Центра Регистрации.
Схема возможной таблицы 200 БД изображена на фиг. 2 и она включает в себя столбцы 210 данных и строки 220 данных. Кроме того, таблица 200 включает в себя столбец 230 дескрипторов защиты. Например, столбец 230 дескрипторов защиты может хранить - для некоторой конкретной строки - дескриптор защиты, связанный с этой строкой. В одном примере дескриптор защиты является идентификатором, связанным с запоминающим устройством 170.
Схема возможной таблицы 300 дескриптора защиты изображена на фиг. 3 в соответствии с аспектом настоящего изобретения. Дескрипторы 310 защиты хранятся в запоминающем устройстве 300. В этом примере конкретный дескриптор 310 защиты дополнительно включает в себя разрешение 330, которое идентифицирует тип доступа, связанный с конкретным дескриптором 310 защиты, например запрет доступа, доступ только для считывания и/или доступ для считывания и записи. Дескриптор 310 защиты дополнительно включает в себя принципала (принципалов) 340, к которому (которым) применяется дескриптор 310 защиты (например, имя пользователя (имена пользователей) группу пользователя (группы пользователей), идентификатор пользователя (идентификаторы пользователей) и/или тип пользователя (типы пользователей).
Для осуществления миграции данных из разнородных источников данных формируется конфигурационный файл 401, в состав которого устанавливаются следующие параметры (для локальной и удаленной базы данных если это не будет оговорено отдельно):
тип базы данных;
технология базы данных;
версия базы данных;
название файла базы данных или таблицы базы данных;
логин пользователя;
пароль пользователя;
список строк, подвергаемых миграции;
список столбцов (для базы данных реляционного и темпорально-реляционного типа);
текущие значения технических указателей и флагов;
данные, необходимые для формирования дескриптора защиты в локальной БД;
другие данные, необходимые для формирования запроса.
0
1
2
n
На основании данных, полученных из конфигурационного файла формируется словарь конфигурационных данных D{x,x,х … x} 402, где:
0
х - список конфигурационных данных, необходимых для формирования запроса на внесение данных в локальную базу данных;
1
n
x…x - список конфигурационных данных, необходимых для формирования запроса на получение данных из удаленной базы данных.
После чего формируются следующие технические значения:
i - маркер итерации 403, являющийся указателем действующего списка конфигурационных данных;
K - флаг достижения конца удаленной таблицы базы данных 404;
R - флаг последнего реализованного запроса к удаленной базе данных 405 (данный флаг устанавливается при первом обращении к удаленной базе данных 406), который переносится в буфер обмена.
После проведения проверки буфера обмена на наличие не перенесенных ранее в локальную базу данных происходит принятие решения о формировании запроса к локальной или удаленной базе данных 407.
Эта операция необходима для того, чтобы непреднамеренное прекращение работы алгоритма не стало причиной рассинхронизации удаленной и локальной баз данных.
Формирование запроса на внесение данных в локальную базу данных 415 происходит если в буфере обмена имеются данные для внесения в эту базу данных.
В противном случае происходит формирование запроса в удаленную базу данных 409 методом конкатенации конфигурационных данных, статических данных, характерных для работы с удаленной базой данных, а так же значения R.
Система управления удаленной базой данных формирует ответ 410 на этот запрос, который может содержать:
данные, хранимые в базе данных;
данные, информирующие об отсутствии запрашиваемых данных;
данные, информирующие о недоступности базы данных.
В случае, если данные, хранимые в удаленной базе данных, не получены происходит формирование запроса к следующей удаленной базе данных 419.
В случае, если данные были получены, они переносятся в буфер обмена 411. Если данное значение является последним в удаленной базе данных, то устанавливается значение флага окончания 413 таблицы K равное 1 (True).
Далее, на основании полученных данных формируется запрос на внесение данных в локальную базу данных.
Для этого конкретизируются значения, полученные из файла конфигурации, статических данных, характерных для типа и версии локальной базы данных 415.
После внесения данных в локальную базу данных происходит их удаление из буфера обмена 416 и проверка состояния флага окончания таблицы удаленной базы данных 417. Если полученное значение не является оконечным в удаленной базе данных, то формируется следующий запрос к удаленной базе данных 408. В противном случае происходит обращение к следующей удаленной таблице удаленной базы данных (при их наличии) 418.
Перенос данных будет происходить до тех пор, пока все данные не будут перенесены из удаленной базы данных в локальную.
После проведения переноса всех данных работа модуля прекращается.
Повторное использование алгоритма позволит провести миграцию добавочных данных, в случае если данные в удаленной базе данных были дополнены.
Данные способ позволяет осуществлять миграцию данных, между однородными и разнородными базами данных, реализованных по следующим моделям:
реляционная;
объектно-реляционная;
темпорально-реляционная;
файл-ориентированная;
объектно-реляционная;
и др. (при наличии способа получения данных в строковом формате).
При этом внесение значение дескрипторов защиты в автоматическом режиме позволяет не только внести в таблицу данные, подвергающиеся миграции, но и настроить политику доступа к этим данным, что повышает общий уровень защищенности системы
1
2
n
k
ki
ki
Для детального понимания процесса преобразования выводимой информации 409 методом кодирования, в соответствии с заданной функцией преобразования F(x) по ключу X, получаемому от УЦ, обратимся к фиг. 5, где предварительно задают исходные данные 501: функцию преобразования F(x) с ключом X, получаемому от УЦ и набор таблиц с данными Т, Т, …, T как результат запроса к МВД. Полученные данные передают в блок 502, где осуществляют подсчет количества полученных таблиц N, подсчет количества строк N и столбцов N для каждой таблицы и устанавливают номер обрабатываемой таблицы k. Далее проверяют 503, все ли таблицы обработаны. В случае, если не все таблицы обработаны - определяют 504 номер строки, с которой начинается обработка всех строк k-ой таблицы.
Далее проверяют 505, все ли строки k-ой таблицы обработаны. В случае, если не все строки k-ой таблицы обработаны - изменяют i-ю строку 506 в соответствии с заданной функцией преобразования F(x), выбирают 507 новую строку, для чего переходят в блок проверки 505. В случае, если все строки k-ой таблицы обработаны - определяют 508 номер столбца, с которого начинается обработка всех столбцов k-ой таблицы.
1
2
n
Далее проверяют 509, все ли столбцы k-ой таблицы обработаны. В случае, если не все столбцы k-ой таблицы обработаны - изменяют j-й столбец 510 в соответствии с заданной функцией преобразования F(x), выбирают 511 новый столбец, для чего переходят в блок проверки 509. В случае, если все столбцы k-ой таблицы обработаны выбирают следующую таблицу 512, для чего переходят в блок проверки 503. В случае, если обработаны все таблицы, то осуществляют вывод 513 набора преобразованных таблиц Т`, Т`, …, Т`.
Функция преобразования F(x) осуществляет перестановку строк и столбцов в таблицах по ключу X, который получают централизованно от УЦ распределения ключевой информации.
Исходя из подробного описания, приведем пример с заданными информационными полями:
1
2
3
- на фиг. 6 изображена возможная таблица 600 со следующими информационными столбцами: ФИО 620, город 630, оклад 640, дескриптор защиты 650, каждая строка (610, 610, 610) описывает конкретных пользователей согласно информационным столбцам;
1
2
3
- на фиг. 7 изображена возможная таблица, имеющая следующие дескрипторы защиты 700 с заданными параметрами: дескриптор защиты 720, список управления доступом 730 и строки дескрипторов защиты (710, 710, 710) описывающих права доступа пользователей;
1
2
3
- на фиг. 8 изображена возможная таблица 800, с заданными временными параметрами: время назначения 840 и время увольнения 850 сотрудника ФИО 820 из отдела 830, каждая строка (810, 810, 810) описывает конкретных пользователей согласно информационным столбцам;
1
2
3
- на фиг. 9 изображена возможная таблица 900 с множествами разрешенных IP-адресов 930, HWID-номеров 940 и ролей пользователей 950, каждая строка (910, 910, 910) описывает права доступа конкретного должностного лица, с конкретного IP-адреса, с заданным HWID-номером и дескриптором защиты строки 920.
Все эти таблицы 600, 700, 800 и 900 являются связанными. Роли пользователей также могут задаваться отдельными таблицами с иерархической структурой.
i
разр
i
разр
i
paзp
Когда пользователь Иван запрашивает БД 180 (таблица 600) по «всем позициям», слово «Иван» является пользовательским контекстом, предоставляемым вместе с запросом в процессор 150 БД. После этого процессор 150 БД извлекает информацию о защите, хранящуюся в запоминающем устройстве и сравнивает по таблице 900 значение IP-адреса i-го структурного элемента IP АС из пользовательского контекста со значением IP-адреса из столбца таблицы 930 IР, значение HWID-номера i-го структурного элемента H АС из пользовательского контекста со значением HWID-номера из столбца таблицы 940 Н, значение роли пользователя i-го структурного элемента R АС со значением роли пользователя R из столбца таблицы 950, в случае, если данные условия не удовлетворяют заданным параметрам - формируют сигнал тревоги, в случае, если условия проверки удовлетворяют параметрам - процессор 150 БД запрашивает БД 180 и предварительно принимает все три строки. Однако процессор 150 БД затем извлекает информацию о дескрипторе защиты, хранящуюся в запоминающем устройстве 170, связанную с каждой из трех строк, и на основании пользовательского контекста возвращает только первую строку, поскольку пользователь Иван имеет полномочия только считывать эту строку. Вместе с тем, если Администратор делает тот же запрос (например, по «всем позициям»), то возвращаются все три строки, поскольку Администратор имеет полномочия считывать все строки и/или записывать в них. На последнем этапе происходит преобразование информации методом перестановка строк и столбцов в таблице функцией преобразования F(x) по ключу X.
И пользователь Иван и администратор БД получат строки с запрашиваемыми данными согласно своих дескрипторов защиты, однако эти данные будут перемешанными и неразборчивыми для смыслового содержания. Только пользователь, у которого есть ключ X, полученный от УЦ, сможет расшифровать полученную таблицу с данными с помощью функции преобразования F(x) и извлечь из нее полезную информацию.
При этом, проведения миграции и репликации данных будет возможно только пользователю «Администратор», а внесение дополнительных значений дескриптора защиты, взятых из конфигурационного файла 401 даст доступ легитимным пользователям, в соответствии с записью в дескрипторе защиты.
Если даже представить, что злоумышленник знает пароль от рабочего места допущенного должностного лица, зайдет именно с его персонального ЭВМ, обратится к БД от допущенного IP-адреса соблюдая все роли, и попытается получить информацию от БД - то ему придет ответ на запрос в закодированном виде, который, без суточного ключа, получаемого от УЦ не будет представлять никакой смысловой нагрузки.
На основе проведенных расчетов и описания видно, что в процессе проведения миграции и репликации данных с использованием технологии защищенного доступа к базе данных, обеспечивается защита доступа к БД, повышается защита информации в БД от внутреннего и внешнего нарушителя и производится накопление данных в базе данных безопасным способом. Это достигается за счет автоматической установки дескриптора защиты и дальнейшей проверки принадлежности IP-адреса множеству разрешенных IP-адресов, с которых осуществляется доступ, принадлежности HWID-номера множеству разрешенных HWID-номеров, повышенной проверки ролей пользователей на право формирования данного запроса к БД, а также преобразования выводимой информации в соответствии с заданной функцией преобразования F(x) по ключу X, получаемому от УЦ.