СИСТЕМЫ И СПОСОБЫ ОСУЩЕСТВЛЯЕМОГО ПОСРЕДСТВОМ ДОСТУПА НА УРОВНЕ МЕЛКИХ СТРУКТУРНЫХ ЕДИНИЦ УПРАВЛЕНИЯ ДАННЫМИ, ХРАНЯЩИМИСЯ В РЕЛЯЦИОННЫХ БАЗАХ ДАННЫХ Российский патент 2009 года по МПК G06F21/24 G06F12/14 

Описание патента на изобретение RU2373571C2

Перекрестная ссылка на родственную заявку

В этой заявке заявляются притязания на приоритет заявки № 60/557239 на временный патент США, поданной 29 марта 2004 г. под названием “SYSTEMS AND METHODS FOR FINE GRAINED ACCESS CONTROL OF DATA STORED IN RELATIONAL DATABASES” («СИСТЕМЫ И СПОСОБЫ ОСУЩЕСТВЛЯЕМОГО ПОСРЕДСТВОМ ДОСТУПА НА УРОВНЕ МЕЛКИХ СТРУКТУРНЫХ ЕДИНИЦ УПРАВЛЕНИЯ ДАННЫМИ, ХРАНЯЩИМИСЯ В РЕЛЯЦИОННЫХ БАЗАХ ДАННЫХ») и упоминаемой здесь во всей ее полноте для справок.

Область техники, к которой относится изобретение

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

Уровень техники

Технологические достижения в аппаратном обеспечении, программном обеспечении и организации сетей компьютеров (вычислительных сетей) привели к повышенной потребности в обмене информацией с помощью электронных средств, а не обычными методами, например, такими как пересылка корреспонденции на бумаге или обмен информацией по телефону. Электронная связь может обеспечить осуществляемую в доли секунды надежную передачу данных, по существу, между любыми двумя пунктами по всему миру. Многие предприятия и потребители интенсивно применяют эту технологию для повышения эффективности и снижения затрат с помощью служб, работающих на основе web (скажем, оперативных информационных служб). Например, потребители могут покупать товары, просматривать банковские расчеты, разыскивать изделия и компании, получать в реальном масштабе времени котировки акций, загружать буклеты и т.д., делая это щелчком мыши с комфортом в домашней обстановке.

Поскольку объем доступных электронных данных растет, становится труднее хранить такие данные управляемым образом, который облегчает пользователю удобные и быстрые поиск и выборку данных. Сегодня обычным подходом является хранение электронных данных в одной или более баз данных. Вообще говоря, типичную базу данных можно назвать организованным собранием информации, в котором данные структурированы таким образом, что, например, компьютерная программа может быстро находить и выбирать желаемые блоки данных. По традиции данные в пределах базы данных организованы посредством одной или более таблиц, при этом соответствующие таблицы содержат набор записей, а записи содержат набор полей. Записи обычно индексированы как строки в пределах таблицы, а поля записей обычно индексированы как столбцы, так что пару индексов, обозначающих строку и столбец, можно назвать конкретной отметкой начала отсчета в таблице.

Данные, хранящиеся в базе данных, часто включают в себя персональную (например, номера банковского счета и страхового полиса социального обеспечения) и секретную информацию (например, выписки из медицинской карты) и могут быть не продублированы посредством печатных («твердых») копий. Следовательно, возрастает важность защиты, связанной с базами данных и данными, хранящимися в них. Вместе с тем, в большинстве современных методов защиты баз данных можно найти бреши, например, из-за «дыр» в программном обеспечении и/или злонамеренных действий хакеров.

Раскрытие изобретения

Ниже представлено краткое изложение сущности изобретения, чтобы обеспечить базовое понимание некоторых аспектов изобретения. Это краткое изложение не является расширенным обзором изобретения. Оно не предназначено для идентификации ключевых и/или критических элементов изобретения или для ограничения объема притязаний изобретения. Его простая цель состоит в том, чтобы представить некоторые изобретательские замыслы в упрощенной форме и в качестве вступления к более подробному описанию, которое представлено ниже.

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

В основе популярности реляционных баз данных лежит способность осуществлять ассоциативные запросы по таблицам. Доступ к наборам объектов, хранящимся в таблицах, возможен с помощью языка обработки наборов (например, SQL - языка структурированных запросов). Этот язык обеспечивает задание одной или более таблиц в качестве источника данных и выдачу - если она вообще происходит - только той строки или тех строк, которая или которые удовлетворяют некоторому заданному условию.

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

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

База данных хранит данные в структурированном формате. Например, база данных может быть реляционной базой данных, объектной базой данных и/или объектно-реляционной базой данных. В связи с реляционными базами данных отметим, что набор объектов с одной и той же структурой называют таблицей, а каждый объект называют строкой. Компоненты структуры называют столбцами. Реляционная база данных может вообще не включать в себя таблицы либо включать в себя одну таблицу или совокупность таблиц.

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

Запоминающее устройство для дескрипторов защиты хранит один дескриптор защиты или совокупность дескрипторов защиты. Каждый дескриптор защиты управляет избирательным доступом к одному или более источникам, которые с ним связаны. Информация о защите, воплощенная в дескрипторе защиты, может включать в себя, например, список пунктов, в которых указывается: (1) разрешен или запрещен доступ; (2) тип доступа (например, разрешение, скажем, только считывания и/или считывания и доступа); и (3) принципал, к которому применяется информация о защите. Например, запоминающее устройство для дескрипторов защиты может быть упорядоченным набором объектов управления доступом.

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

Процессор базы данных принимает информацию запроса, например, от пользователя. Информация запроса включает в себя запрос, который надлежит выполнить в базе данных, и пользовательский контекст, связанный с инициатором запроса (например, имя пользователя, идентификатор пользователя и/или тип пользователя).

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

В еще одном аспекте настоящего изобретения в качестве части технических характеристик стратегии предложен язык программирования SQL (например, TSQL), дополненный новым набором операторов, которые обеспечивают создание, модификацию и удаление дескриптора (дескрипторов) защиты, например списков управления доступом. Этот дескриптор защиты (эти дескрипторы защиты, например списки управления доступом) может (могут) включать в себя другую информацию, связанную с защитой. Например, дескрипторы защиты могут быть предусмотрены временно независимыми от строк в таблицах, могут быть совместно используемыми и могут воплощать стратегию, определяющую, какие и кому выдаются разрешения, когда они связаны с некоторой строкой.

В традиционных реляционных базах данных алгоритмы защиты не связаны со строками в таблицах. Так, в соответствии с одним аспектом настоящего изобретения чтобы указать, что строки в некоторой конкретной таблице в системе базы данных защищены с помощью алгоритма защиты, операторы SQL для создания и замены таблиц расширены для указания этого факта. Один из столбцов в определении этих таблиц расширен по выбору некоторым атрибутом, который указывает, что этот столбец воплощает стратегию защиты. Значение этого столбца относится к идентификационному параметру некоторого дескриптора защиты, рассмотренного ранее (например, четырехбайтного кода). В одном примере, если значение столбца представляет собой НУЛЬ, то строка не защищена никакой стратегией. С другой стороны, стратегия управления доступом для этой строки выбирается на основе соответствующего дескриптора защиты и связанной с ним информации, хранящейся в запоминающем устройстве для дескрипторов защиты.

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

Краткое описание чертежей

На фиг.1 представлена блок-схема системы, которая облегчает защищенный доступ к базе данных в соответствии с одним аспектом настоящего изобретения.

На фиг.2 представлена схема возможной таблицы в соответствии с одним аспектом настоящего изобретения.

На фиг.3 представлена схема возможного запоминающего устройства для дескрипторов защиты в соответствии с одним аспектом настоящего изобретения.

На фиг.4 представлена блок-схема системы, которая облегчает защищенный доступ к базе данных в соответствии с одним аспектом настоящего изобретения.

На фиг.5 представлена блок-схема системы, которая облегчает защищенный доступ к базе данных в соответствии с одним аспектом настоящего изобретения.

На фиг.6 представлена схема последовательности операций способа защищенного доступа к данным, хранящимся в базе данных, в соответствии с одним аспектом настоящего изобретения.

На фиг.7 представлена схема последовательности операций способа защищенного доступа к данным, хранящимся в базе данных, в соответствии с одним аспектом настоящего изобретения.

На фиг.8 представлена схема последовательности операций способа, облегчающего создание защищенной базы данных в соответствии с одним аспектом настоящего изобретения.

На фиг.9 представлена возможная операционная среда, в которой может функционировать настоящее изобретение.

Подробное описание изобретения

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

В том смысле, в каком они употребляются в данной заявке, термины «компонент», «программа обработки», «модель», «система» и т.п. следует считать относящимися к связанному с компьютером объекту либо аппаратному обеспечению, комбинации аппаратного обеспечения и программного обеспечения, программному обеспечению или находящемуся в стадии выполнения команд программному обеспечению. Например, компонентом может быть - но не в ограничительном смысле - процесс, идущий на процессоре, процессор, объект, исполняемый файл, поток выполняемых задач, программа и/или компьютер. В качестве иллюстрации отметим, что компонентом может быть и активное приложение на сервере, и сам сервер. Один или более компонентов могут постоянно участвовать в реализации процесса и/или потока выполняемых задач, а некоторый компонент может быть локализован на одном компьютере и/или распределен между двумя или более компьютерами. Кроме того, эти компоненты могут работать от различных считываемых компьютером носителей, имеющих различные структуры данных, записанные на них. Компоненты могут осуществлять связь посредством локальных и/или дистанционных процессов, например, в соответствии с сигналом, имеющим один или более пакетов данных (например, данных из одного компонента, взаимодействующего с другим компонентом в локальной системе, распределенной системе, и/или взаимодействующего через сеть, такую как Internet, с другими системами посредством этого сигнала). В соответствии с настоящим изобретением компьютерные компоненты можно хранить, например, на считываемых компьютером носителях, включая - но не в ограничительном смысле - интегральную схему прикладной ориентации (ASIC), компакт-диск (CD), цифровой видеодиск (DVD), постоянную память (ROM), флоппи-диск, жесткий диск, электрически стираемую программируемую постоянную память (EEPROM) и память типа “memory stick”.

Обращаясь к фиг.1, отмечаем, что здесь изображена система 100, которая облегчает защищенный доступ к базе данных в соответствии с одним аспектом настоящего изобретения. Система 100 включает в себя процессор 110 базы данных, который осуществляет доступ к базе 120 данных, и запоминающее устройство 130 для дескрипторов защиты. По выбору система 100 может дополнительно включать в себя базу 120 данных.

С учетом растущей популярности компьютеров все больше и больше данных сохраняют в базах данных, например реляционных базах данных. В реляционных базах данных большинство данных хранятся как строки в одной или более таблиц. Доступ в базы данных может быть получен с помощью одного из совокупности объектов. Вследствие природы данных, хранящихся в базах данных, санкционирование избирательного доступа (например, запрета доступа, доступа для считывания и/или доступа для считывания и записи) к этим данным приобретает существенное значение.

В основе популярности реляционных баз данных лежит способность осуществлять ассоциативные запросы по таблицам. Доступ к наборам объектов, хранящимся в таблицах, возможен с помощью языка обработки наборов (например, SQL - языка структурированных запросов). Этот язык обеспечивает задание одной или более таблиц в качестве источника данных и выдачу - если она вообще происходит - только той строки или тех строк, которая или которые удовлетворяют некоторому заданному условию.

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

База 120 данных хранит данные в структурированном формате. Например, база 120 данных может быть реляционной базой данных, объектной базой данных и/или объектно-реляционной базой данных. В связи с реляционными базами данных отметим, что набор объектов с одной и той же структурой называют таблицей, а каждый объект называют строкой. Компоненты структуры называют столбцами. Реляционная база данных может включать в себя одну таблицу или совокупность таблиц.

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

Обращаясь теперь к фиг.2, отмечаем, что здесь изображена возможная таблица 200 в соответствии с одним аспектом настоящего изобретения. Таблица 200 включает в себя столбцы 210 данных и строки 220 данных. Кроме того, таблица 200 включает в себя столбец 230 дескрипторов защиты. Например, столбец 230 дескрипторов защиты может хранить - для некоторой конкретной строки - дескриптор защиты, связанный с этой строкой. В одном примере дескриптор защиты является идентификатором, связанным с запоминающим устройством 130 для дескрипторов защиты.

Возвращаясь к фиг.1, отмечаем, что запоминающее устройство 130 для дескрипторов защиты хранит информацию о защите, воплощенную посредством одного или более дескрипторов защиты. Информация о защите может включать в себя, например, пункты, в которых указывается: (1) разрешен или запрещен доступ; (2) тип доступа (например, разрешение, скажем, только считывания и/или считывания и доступа); и (3) принципал, к которому применяется информация о защите. Например, запоминающее устройство 130 для дескрипторов защиты может быть упорядоченным набором объектов управления доступом.

Переходя к краткому описанию фиг.3, отмечаем, что здесь изображено запоминающее устройство 300 для дескрипторов защиты в соответствии с одним аспектом настоящего изобретения. Запоминающее устройство 300 для дескрипторов защиты включает в себя один или более дескрипторов 310 защиты.

В этом примере конкретный дескриптор 310 защиты дополнительно включает в себя разрешение 330, которое идентифицирует тип доступа, связанный с конкретным дескриптором 310 защиты, например запрет доступа, доступ только для считывания и/или доступ для считывания и записи. Дескриптор 310 защиты дополнительно включает в себя принципала (принципалов) 340, к которому (которым) применяется дескриптор 310 защиты (например, имя пользователя (имена пользователей) группу пользователя (группы пользователей), идентификатор пользователя (идентификаторы пользователей) и/или тип пользователя (типы пользователей).

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

Возвращаясь к фиг.1, отмечаем, что процессор 110 базы данных принимает информацию запроса, например, от пользователя. Информация запроса включает в себя запрос, который надлежит выполнить в базе 120 данных, и пользовательский контекст, связанный с инициатором запроса (например, имя пользователя, идентификатор пользователя и/или тип пользователя).

При выполнении запроса процессор 110 базы данных оценивает дескриптор защиты, связанный со строкой (строками) базы 120 данных, к которой (которым) осуществляется доступ, и информацию пользовательского контекста, связанную с запросом, чтобы определить, запросил ли пользователь доступ к строке. После этого процессор 110 базы данных обеспечивает ответ на информацию запроса на основании этого запроса и - что важно - информации пользовательского контекста. Таким образом, инициатору запроса предоставляется информация только из той базы 120 данных, права доступа (например, просмотра и/или изменения данных) к которой имеет пользователь.

Например, возможна база 120 данных, имеющая таблицу со следующими объектами:

Таблица 1 Имя Штат Оклад Дескриптор защиты Джефф Огайо $ 5000 1 Джо Вашингтон $ 10000 2 Салли Огайо $ 25000 3

и возможно соответствующее запоминающее устройство 130 для дескрипторов защиты, имеющее следующие дескрипторы защиты:

Таблица 2 Дескриптор защиты Список управления доступом (Доступ: Разрешение: Принципал-правообладатель) 1 Право: Считывание: Джефф; Право: Считывание и запись: Администратор 2 Запрет: Считывание: Джо; Право: Считывание и запись: Администратор 3 Запрет: Считывание: Салли; Право: Считывание и запись: Администратор

В этом примере, когда пользователь Джефф запрашивает базу 120 данных (таблица 1) по «всем позициям», слово «Джефф» является пользовательским контекстом, предоставляемым вместе с запросом в процессор 110 базы данных. После этого процессор 110 базы данных запрашивает базу 120 данных и предварительно принимает все три строки. Однако процессор 110 базы данных затем извлекает информацию о защите, хранящуюся в запоминающем устройстве 130 для дескрипторов защиты, связанную с каждой из трех строк, и на основании пользовательского контекста возвращает только первую строку, поскольку пользователь Джефф имеет полномочия только считывать эту строку. Вместе с тем, если Администратор делает тот же запрос (например, по «всем позициям»), то возвращаются все три строки, поскольку Администратор имеет полномочия считывать все строки и/или записывать в них.

В соответствии с одним аспектом настоящего изобретения в качестве части технических характеристик стратегии предложен язык программирования SQL (например, TSQL), дополненный новым набором операторов, которые обеспечивают создание, модификацию и удаление (например, списков управления доступом) из запоминающего устройства (запоминающих устройств) 130, 300 для дескрипторов защиты. Это запоминающее устройство (эти запоминающие устройства) 130, 300 для дескрипторов защиты (например, списков управления доступом) может (могут) включать в себя другую информацию, связанную с защитой. Например, дескрипторы защиты могут быть временно независимыми от строк в таблицах, могут быть совместно используемыми несколькими строками или другими объектами в системе базы данных и могут воплощать стратегию, определяющую, какие и кому выдаются и запрещаются разрешения, когда они связаны с некоторой строкой.

В традиционных реляционных базах данных алгоритмы защиты не связаны со строками в таблицах. Так, в соответствии с одним аспектом настоящего изобретения, чтобы указать, что строки в некоторой конкретной таблице в системе базы данных защищены с помощью стратегии защиты, операторы SQL для создания и замены таблиц расширены для указания этого факта. Один из столбцов в определении этих таблиц расширен по выбору некоторым атрибутом, который указывает, что этот столбец воплощает алгоритм защиты. Значение этого столбца относится к идентификационному параметру некоторого дескриптора защиты, рассмотренного ранее (например, четырехбайтного кода). В одном примере, если значение столбца представляет собой НУЛЬ, то строка не защищена никакой стратегией. С другой стороны, стратегия управления доступом для этой строки выбирается на основе соответствующего дескриптора защиты и связанной с ним информации, хранящейся в запоминающем устройстве 130, 300 для дескрипторов защиты. В еще одном примере значение по умолчанию столбца можно задать как идентификационный параметр дескриптора защиты, который воплощает стратегию защиты в таблице.

Следует принять во внимание, что система 100, процессор 110 базы данных, база 120 данных и/или запоминающее устройство 130 дескрипторов защиты могут быть компьютерными компонентами в том смысле, в котором этот термин определен в данном описании.

Переходя далее к фиг.4, отмечаем, что здесь изображена система 400, которая облегчает защищенный доступ к базе данных в соответствии с одним аспектом настоящего изобретения. Система 400 включает в себя процессор 110 базы данных, базу 120 данных, запоминающее устройство 130 для дескрипторов защиты и запросный компонент 410. Запросный компонент 410 может включать в себя блок 420 оптимизации запросов и блок 430 выполнения запросов. По выбору запросный компонент 410 может дополнительно включать в себя компонент 440 процессора базы данных запросов.

Когда формулируется запрос в запросный компонент 410, блок 420 оптимизации запросов может определить «наилучший способ» («оптимизацию») ответа на этот запрос. Например, запросный компонент 410 может применить стратегию оптимизации по затратам, вследствие чего в качестве плана выбирается наиболее дешевый способ выполнения запроса.

Специалисты в данной области техники поймут, что процесс оптимизации сложен. Запросный компонент 410 может применять известные технологии при перечислении возможных планов и отсекать дорогостоящие. Индексы в таблицах играют важную роль в уменьшении затрат на доступ к данным в этих таблицах. Следует принять во внимание, что можно применить процесс оптимизации любого типа, пригодный для осуществления настоящего изобретения, и все такие типы технологий оптимизации следует считать находящимися в рамках объема притязаний прилагаемой формулы изобретения.

Важно, что когда осуществляется доступ к строкам таблицы, защищенным алгоритмами защиты в форме дескрипторов защиты, процессор 110 базы данных - как раз перед рассмотрением строк на предмет ввода при построении результата опроса - вынуждает выполнение алгоритма защиты путем подтверждения того, что инициатор запроса имеет разрешение считывать строки, на основании стратегии, определенной дескриптором защиты, связанным с каждой строкой. Специалисты в данной области техники поймут, что модель защиты, описанная выше, приравнивает визуальную доступность строки для принципала, посылающего запрос, к положительной оценке дескриптора защиты, связанного с этой строкой.

Обычные системы защиты баз данных вынуждали реализацию стратегий алгоритмов защиты за счет «прививки» условия, в соответствии с которым частью исходного запроса является проверка того, что строка доступна. В современных системах реляционных баз данных план запроса, который подлежит выполнению, зачастую в корне отличается от запроса, на самом деле формулируемого его инициатором. Чтобы уменьшить затраты на доступ к строкам, осуществляют переупорядочение доступа к таблицам. В качестве меры, против которой это переупорядочение бессильно, отметим, что злонамеренное лицо, делающее запрос, чтобы увидеть дополнительные данные, имеет возможность обеспечить функции, дающие побочные эффекты, в качестве части запроса. Наиболее распространенные системы безопасности баз данных беззащитны против таких попыток получения доступа с помощью обмана, когда эти системы применяются с целью вынуждения управления, осуществляемого посредством доступа на уровне мелких структурных единиц.

Чтобы пресечь эту проблему в корне и в то же время не нарушить процесс оптимизации, в настоящем изобретении предложен новый алгоритм, который гарантирует, что все пути доступа к таблице предусматривают наличие столбца, имеющего дескрипторы защиты. Эти пути доступа к таблице включают в себя - но не в ограничительном смысле - саму таблицу, хранимую в виде «кучи» (неупорядоченного собрания), либо кластеризованный или некластеризованный индекс в таблице, а также материализованные изображения, возможно, определенные по таблице. В результате наличия столбца дескрипторов защиты на всех путях доступа оптимизация запроса становится ортогональной к вынуждению защиты на уровне мелких структурных единиц. Поэтому безотносительно того, как запрос переупорядочивается (т.е. оптимизируется блоком 420 оптимизации запросов) в данный момент времени, строки (например, элементы данных в таблицах, индексы, материализованные изображения и любые другие пути доступа - все они рассматриваются как «строки») выбираются среди любых определенных путей доступа таким образом, что в наличии оказываются два блока информации, то есть стратегия защиты, связанная с этой строкой, и текущий пользовательский контекст. Результатом является вынуждение защиты, не подверженной разрушению путем обмана и не снижающей выгоды оптимизации (например, переупорядочения) запроса.

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

Таким образом, настоящее изобретение гарантирует ориентированные по наборам операции на наборах перманентных объектов без резкого изменения пути, на котором операционные системы определяют стратегии защиты на перманентных объектах, то есть посредством дескрипторов защиты.

Следует принять во внимание, что система 400, запросный компонент 410, блок 420 оптимизации запросов и/или блок 430 выполнения запросов могут быть компьютерными компонентами в том смысле, в котором этот термин определен в данном описании.

Переходя далее к фиг.5, отмечаем, что здесь изображена система 500, которая облегчает защищенный доступ к базе данных в соответствии с одним аспектом настоящего изобретения. Система 500 включает в себя процессор 110 базы данных, базу 120 данных, запоминающее устройство 130 для дескрипторов защиты, запросный компонент 410 и кэш 510 сеансов пользователей.

Система 500 применяет кэш 510 сеансов пользователей, который связан с сеансом пользователя. Кэш 510 хранит вычисленный результат, обусловленный тем, имеет ли текущий контекст защиты заданное разрешение относительно некоторого дескриптора защиты. Следовательно, результат проверки того, имеет ли принципал доступ к объекту, заданному дескриптором защиты этого объекта, оценивается только по поступлении запроса. Если две строки таблицы имеют одну и ту же стратегию защиты, т.е. имеют один и тот же дескриптор защиты, результат проверки того, имеет инициатор запроса доступ к строке или нет, оценивается в первый раз, и этот результат сохраняется в кэш 510. Кэшированный результат применяется для второй строки.

Кэш 510 становится исключительно полезным средством, когда много строк имеют один и тот же алгоритм защиты, что может иметь место, например, в файловых системах и аналогичных приложениях.

Следует принять во внимание, что система 500 и/или кэш сеансов пользователя могут быть компьютерными компонентами в том смысле, в котором этот термин определен в данном описании.

Как упоминалось выше, систему (системы) 100, 400 и/или 500 можно применять для облегчения защищенного доступа к файлу (файлам), папкам, контактам, сообщениям электронной почты и другим перманентным объектам в базах данных. Например, база данных, связанная с файловой системой, может включать в себя одну или более таблиц, которые могут хранить информацию, касающуюся файлов и/или папок. Система (системы) 100, 400 и/или 500 может (могут) применять таблицу (таблицы) таким образом, что обеспечивается возможность обосновать необходимость информации и найти ее с помощью стандартного реляционного метода (стандартных реляционных методов). Система (системы) 100, 400 и/или 500 может (могут) улучшать файловые системы за счет удовлетворения потребности в алгоритме перманентной файловой системы, которому требуется архитектура защиты, вследствие чего можно определить стратегии избирательного доступа и вынудить их выполнение на перманентных объектах, сохраняя при этом возможности ассоциативных запросов на основе наборов.

Переходя к краткому описанию фиг. 6-9, отмечаем, что здесь проиллюстрированы методологии, которые можно воплотить в соответствии с настоящим изобретением. Хотя в целях простоты пояснений эти методологии показаны и описаны в виде последовательности блоков, следует понять и принять во внимание, что порядок следования этих блоков не является ограничительным признаком настоящего изобретения, поскольку в соответствии с настоящим изобретением некоторые блоки можно реализовать в отличающихся порядках и/или одновременно с блоками, отличающимися от тех, которые иллюстрируются и описываются здесь. Более того, не все проиллюстрированные блоки могут потребоваться для воплощения методологий в соответствии с настоящим изобретением.

Изобретение можно описать в общем контексте выполняемых компьютером команд, например программных модулей, выполняемых одним или более компонентами. Вообще говоря, программные модули включают в себя подпрограммы, программы, объекты, структуры данных и т.д., которые решают конкретные задачи или воплощают конкретные типы абстрактных данных. Как правило, функциональные возможности программных модулей можно объединять или распределять в соответствии с желательными результатами в различных вариантах осуществления.

Обращаясь к фиг.6, отмечаем, что здесь проиллюстрирован способ защищенного доступа к базе данных 600 в соответствии с одним аспектом настоящего изобретения. На этапе 610 осуществляют прием информации, включающей в себя запрос и пользовательский контекст. На этапе 620 выполняют запрос (например, посредством запросного компонента 410). На этапе 630 для каждой строки, которая удовлетворяет запросу, рассматривают эту строку на предмет ввода во время построения выходного результата запроса только в случае, если дескриптор защиты, связанный с этой строкой, удовлетворяется информацией, включающей в себя пользовательский контекст.

Далее, обращаясь к фиг.7, отмечаем, что здесь проиллюстрирован способ защищенного доступа к базе данных 700 в соответствии с одним аспектом настоящего изобретения. На этапе 710 осуществляют прием информации, включающей в себя запрос и пользовательский контекст. На этапе 714 выбирают строку, подлежащую рассмотрению при построении результата запроса. На этапе 720 определяют, удовлетворяется ли дескриптор защиты строки информацией, включающей в себя пользовательский контекст. Если определение на этапе 720 приводит к результату «НЕТ», то обработка продолжается на этапе 730. Если определение на этапе 720 приводит к результату «ДА», то на этапе 740 определяют, вносит ли строка вклад в результат запроса. Если определение на этапе 740 приводит к результату «НЕТ», то обработка продолжается на этапе 714. Если определение на этапе 740 приводит к результату «ДА», то на этапе 750 используют упомянутую строку при построении результата запроса.

На этапе 730 определяют, есть ли еще какая-нибудь строка (какие-нибудь строки). Если определение на этапе 730 приводит к результату «ДА», то обработка продолжается на этапе 714. Если определение на этапе 730 приводит к результату «НЕТ», то дальнейшая обработка не производится.

Обращаясь к фиг.8, отмечаем, что здесь проиллюстрирован способ, облегчающий создание защищенной базы 800 данных в соответствии с одним аспектом настоящего изобретения. На этапе 810 создают таблицу со столбцом дескрипторов защиты. На этапе 820 создают дескриптор защиты, связанный с этой таблицей. На этапе 830 заполняют таблицу (в результате чего, например, по меньшей мере, одна строка таблицы становится имеющей идентификатор дескриптора защиты).

На этапе 840 осуществляют прием информации, включающей в себя запрос и пользовательский контекст. На этапе 850 оптимизируют и выполняют запрос, пользуясь информацией, включающей в себя пользовательский контекст, и дескриптором (дескрипторами) защиты из таблицы. На этапе 860 осуществляют выдачу результата оптимизированного запроса в ответ на этот запрос.

Чтобы обеспечить дополнительный контекст для различных аспектов настоящего изобретения, фиг.9 и нижеследующее обсуждение предназначены для того, чтобы дать краткое общее описание подходящей операционной среды 910, в которой можно воплотить различные аспекты настоящего изобретения. Хотя изобретение описывается в общем контексте выполняемых компьютером команд, например программных модулей, выполняемых одним или несколькими компьютерами или другими устройствами, специалисты в данной области техники поймут, что изобретение также можно воплотить совместно с другими программными модулями и/или в виде комбинации аппаратного обеспечения и программного обеспечения. Вместе с тем, в общем случае программные модули включают в себя подпрограммы, программы, объекты, структуры данных и т.д., которые решают конкретные задачи или воплощают конкретные типы абстрактных данных. Операционная среда 910 является лишь одним примером подходящей операционной среды и не должна восприниматься как накладывающая какое-либо ограничение на объем применения или функциональные возможности изобретения. Другие хорошо известные вычислительные системы, среды и/или конфигурации, которые могут оказаться подходящими для использования вместе с этим изобретением, включают в себя - но не в ограничительном смысле - персональные компьютеры, карманные или портативные устройства, многопроцессорные системы, системы на основе микропроцессоров, программируемые потребительские электронные приборы, сетевые ПК, мини-компьютеры, главные компьютеры вычислительных центров, распределенные вычислительные среды, которые включают в себя вышеупомянутые системы или устройства, и т.п.

Обращаясь к фиг.9, отмечаем, что возможная среда 910 для воплощения различных аспектов этого изобретения включает в себя компьютер 912. Компьютер 912 включает в себя процессор 914, системную память 916 и системную шину 918. Системная шина 918 соединяет компоненты системы, включая - но не в ограничительном смысле - системную память 916, с процессором 914. Процессор 914 может быть любым из разных доступных процессоров. В качестве процессора 914 также можно применять сдвоенные микропроцессоры и другие многопроцессорные архитектуры.

Системная шина 919 может относиться к любому из нескольких типов структуры (структур) шин, включая шину памяти или контроллер памяти, периферийную шину или внешнюю шину и/или локальную шину, при использовании любой совокупности доступных архитектур шин, включая - но не в ограничительном смысле - восьмиразрядную шину, архитектуру промышленного стандарта (ISA), микроканальную архитектуру (MSA), расширенную ISA (EISA), шину интеллектуального электронного оборудования дискового накопителя (IDE), VLS - локальную шину, разработанную Международной ассоциацией по стандартизации в области видеоэлектроники (VESA), шину межсоединения периферийных компонентов (PCI), универсальную последовательную шину (USB), шину ускоренного графического порта (AGP), шину, разработанную Международной ассоциацией производителей плат памяти для персональных компьютеров (PCMCIA), и шину интерфейса малых компьютерных систем (SCSI).

Системная память 916 включает в себя энергозависимую память 920 и энергонезависимую память 922. Базовая система ввода-вывода (BIOS), содержащая базовые подпрограммы для передачи между элементами внутри компьютера 912 такой информации, как информация о запуске, хранится в энергонезависимой памяти 922. В качестве иллюстрации, а не ограничения, отметим, что энергонезависимая память может включать в себя постоянную память (ROM), программируемую ROM (PROM), электрически программируемую ROM (EPROM), электрически стираемую PROM (EEPROM) или флэш-память. Энергозависимая память 920 включает в себя оперативную память (RAM), которая действует как внешняя кэш-память. В качестве иллюстрации, а не ограничения, отметим, что RAM может принимать разные формы, такие как синхронная RAM (SRAM), динамическая RAM (DRAM), синхронная DRAM (SDRAM), SDRAM с удвоенной скоростью обмена данными (DDR SDRAM), улучшенная SDRAM (ESDRAM), синхронно связанная SDRAM (SLDRAM) и RAM прямого доступа, разработанная фирмой Rumbus (DRRAM).

Компьютер 912 также включает в себя сменные и/или несменяемые, энергозависимые и/или энергонезависимые компьютерные носители информации. На фиг.9 изображен, например, накопитель 924 на дисках. Накопитель 924 на дисках включает в себя - но не в ограничительном смысле - такие устройства, как накопитель на магнитных дисках, накопитель на флоппи-дисках, накопитель на магнитной ленте, накопитель типа Jaz, накопитель типа Zip, плату флэш-памяти или память типа “memory stick”. Кроме того, накопитель 924 на дисках может включать в себя носители информации по отдельности или в совокупности с другими носителями информации, включая - но не в ограничительном смысле - накопитель на оптических дисках, такой, как устройство ROM на компакт-дисках (CD-ROM), накопитель на записываемых CD (накопитель на CD-R), накопитель на перезаписываемых CD (накопитель на CD-RW) или накопитель типа ROM на многоцелевых цифровых дисках (DVD-ROM). Чтобы облегчить подсоединение накопителей 924 на дисках к системной шине 918, как привило, используют сменный или несменяемый интерфейс, такой как интерфейс 926.

Следует принять во внимание, что на фиг.9 представлено описание программного обеспечения, которое действует как промежуточное между пользователями и базовыми вычислительными ресурсами, описанными в подходящей операционной среде 910. Такое программное обеспечение включает в себя операционную систему 928. Операционная система 928, которая может храниться в накопителе 924 на дисках, действует, управляя ресурсами вычислительной системы 912 и распределяя их. Системные приложения 930 получают преимущество управления ресурсами с помощью операционной системы 928 посредством программных модулей 932 и программных данных 934, хранящихся либо в системной памяти 916, либо в накопителе 924 на дисках. Следует понять, что настоящее изобретение можно воплотить с различными операционными системами или комбинациями операционных систем.

Пользователь вводит команды или информацию в компьютер 912 посредством устройства (устройств) 936 ввода. Устройства 936 ввода включают в себя - но не в ограничительном смысле - указательное устройство, такое как мышь, шаровой указатель (трекбол), перо, сенсорную панель, клавиатуру, микрофон, рычажный указатель (джойстик), игровую панель, спутниковую антенну-тарелку, настроечную плату телевизионного приемника, цифровую камеру, web-камеру и т.п. Эти и другие устройства ввода подсоединены к процессору 914 посредством системной шины 918 через порты (порты) 938 интерфейса. Порт (порты) 938 интерфейса включают в себя, например, последовательный порт, параллельный порт, игровой порт и универсальную последовательную шину (USB). Устройство (устройства) 940 вывода пользуются некоторыми портами того же типа, что и устройство (устройства) 936 ввода. Так, например, порт USB можно использовать для обеспечения ввода в компьютер 912 и вывода информации из компьютера 912 в устройство 940 вывода. Адаптер 942 вывода представлен, чтобы проиллюстрировать факт наличия некоторых устройств 940 вывода типа мониторов, колонок и принтеров (среди прочих устройств 940 вывода), которые требуют специальных адаптеров. В качестве иллюстрации, не носящей ограничительный характер, отметим, что адаптеры 942 вывода включают в себя видеоплаты и звуковые платы, которые обеспечивают средство связи между устройством 940 вывода и системной шиной 918. Следует отметить, что возможности и ввода, и вывода обеспечиваются также другими устройствами и/или системами, такими как удаленный компьютер (удаленные компьютеры) 944.

Компьютер 912 может работать в сетевой среде за счет использования логических соединений с одним или более удаленными компьютерами, такими как удаленный компьютер (удаленные компьютеры) 944. Удаленный компьютер (удаленные компьютеры) 944 может (могут) быть персональным компьютером, сервером, маршрутизатором, сетевым ПК, рабочей станцией и т.п., и в типичном случае включает в себя многие или все элементы, описанные применительно к компьютеру 912. Для краткости описания, проиллюстрировано только запоминающее устройство 946 с удаленным компьютером (удаленными компьютерами) 944. Удаленный компьютер (удаленные компьютеры) 944 логически соединен (соединены) с компьютером 912 посредством сетевого интерфейса 948, а затем физически соединен посредством соединения 950 связи. Сетевой интерфейс 948 охватывает сети связи, такие как локальные сети (LAN) и глобальные сети (WAN). Технологии LAN включают в себя распределенный интерфейс передачи данных по волоконно-оптическим каналам (FDDI), Ethernet/IEEE 802.3, Token Ring/IEEE 802.5 и т.п. Технологии WAN включают в себя - но не в ограничительном смысле - двухточечные линии связи, сети с коммутацией каналов типа цифровых сетей с комплексными услугами (ISDN) и их разновидностей, сети с коммутацией пакетов и цифровые абонентские линии (DSL).

Соединение (соединения) 950 связи относится (относятся) к аппаратному обеспечению и/или программному обеспечению, используемым для подсоединения сетевого интерфейса 948 к системной шине 918. Хотя для ясности иллюстрации соединение 950 связи показано внутри компьютера 912, оно также может быть внешним по отношению к компьютеру 912. Лишь в целях пояснения отметим, что аппаратное обеспечение, и/или программное обеспечение, необходимое для сетевого интерфейса 948, включает в себя внутренние и внешние технологические средства, такие как модемы, включая обычные телефонные модемы, кабельные модемы и модемы DSL, адаптеры ISDN и сетевые карты Ethernet.

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

Похожие патенты RU2373571C2

название год авторы номер документа
СПОСОБ ЗАЩИЩЕННОГО ДОСТУПА К БАЗЕ ДАННЫХ 2019
  • Королёв Игорь Дмитриевич
  • Попов Владимир Игоревич
  • Коноваленко Сергей Александрович
  • Захарченко Роман Иванович
RU2709288C1
СПОСОБ ПРОВЕДЕНИЯ МИГРАЦИИ И РЕПЛИКАЦИИ ДАННЫХ С ИСПОЛЬЗОВАНИЕМ ТЕХНОЛОГИИ ЗАЩИЩЕННОГО ДОСТУПА К БАЗЕ ДАННЫХ 2020
  • Королев Игорь Дмитриевич
  • Литвинов Евгений Сергеевич
  • Крюков Денис Матвеевич
  • Захарченко Ромин Иванович
  • Костров Сергей Олегович
RU2745679C1
СПОСОБ ЗАЩИТЫ ДЕСКРИПТОРОВ РЕЛЯЦИОННОЙ БАЗЫ ДАННЫХ 2021
  • Королев Игорь Дмитриевич
  • Литвинов Евгений Сергеевич
  • Ахтямов Максим Олегович
  • Мулюкин Сергей Владимирович
  • Севтинов Анатолий Борисович
  • Маркин Денис Игоревич
RU2774098C1
ОТОБРАЖЕНИЕ МОДЕЛИ ФАЙЛОВОЙ СИСТЕМЫ В ОБЪЕКТ БАЗЫ ДАННЫХ 2006
  • Шукла Амит
  • Нори Анил Кумар
  • Демироски Беким
  • Фридман Грегори С.
  • Хантер Джейсон Т.
  • Пирс Джеффри Т.
  • Ньюман Майкл Дж.
  • Эллис Найджел Р.
  • Ачария Сринивасмуртхи П.
RU2409847C2
МЕХАНИЗМЫ ОБНАРУЖИВАЕМОСТИ И ПЕРЕЧИСЛЕНИЯ В ИЕРАРХИЧЕСКИ ЗАЩИЩЕННОЙ СИСТЕМЕ ХРАНЕНИЯ ДАННЫХ 2006
  • Хантер Джейсон Т.
  • Дубхаши Кедарнатх А.
  • Скариа Саймон
RU2408070C2
УВЕДОМЛЕНИЯ ОБ ИЗМЕНЕНИИ ДАННЫХ 2006
  • Шукла Амит
  • Ло Чан
  • Юань Хуа
  • Райзефф Джеймс Д.
  • Кляйн Йоханнес
  • Фан Лицзянь
  • Эллис Найджел Р.
  • Сингх Сиддхартха
  • Ачария Сринивасмуртхи П.
RU2421803C2
ПРЕДСТАВЛЕНИЕ БЕЗОПАСНОСТИ НА ОСНОВЕ ЯЧЕЕК ДЛЯ ДОСТУПА К ДАННЫМ 2009
  • Янг Марк
  • Амиров Антон
  • Танг Джонатан
RU2501083C2
БЕЗОПАСНОСТЬ НА ОСНОВЕ ОБЛАСТИ 2006
  • Ли Цзыцюань
  • Дутта Танмой
RU2413978C2
СПОСОБ КОНВЕРСИИ ДАННЫХ, УСТРОЙСТВО КОНВЕРСИИ ДАННЫХ И СИСТЕМА КОНВЕРСИИ ДАННЫХ 2013
  • Ананьин Алексей Эрнстович
  • Бабин Владислав Николаевич
RU2527201C1
ОБЪЕДИНЕНИЕ МНОГОМЕРНЫХ ВЫРАЖЕНИЙ И РАСШИРЕНИЙ ГЛУБИННОГО АНАЛИЗА ДАННЫХ ДЛЯ ИЗВЛЕЧЕНИЯ ИНФОРМАЦИИ ИЗ КУБОВ OLAP 2005
  • Макленнан К. Джеймс
  • Ким Пюнгчул
  • Тан Чжаохой
RU2398273C2

Иллюстрации к изобретению RU 2 373 571 C2

Реферат патента 2009 года СИСТЕМЫ И СПОСОБЫ ОСУЩЕСТВЛЯЕМОГО ПОСРЕДСТВОМ ДОСТУПА НА УРОВНЕ МЕЛКИХ СТРУКТУРНЫХ ЕДИНИЦ УПРАВЛЕНИЯ ДАННЫМИ, ХРАНЯЩИМИСЯ В РЕЛЯЦИОННЫХ БАЗАХ ДАННЫХ

Изобретение относится к вычислительным системам и способам для предоставления защищенного доступа к базе данных. Техническим результатом является улучшение защиты доступа к базе данных. Система содержит запоминающее устройство для дескрипторов защиты, которые хранят информацию о защите, связанную, по меньшей мере, с одной строкой базы данных, причем база данных содержит, по меньшей мере, одну таблицу, содержащую, по меньшей мере, одну строку и два столбца, в одном из столбцов хранится дескриптор защиты, связанный со строкой, информация, хранящаяся в дескрипторе защиты, содержит сведения о том, какой тип доступа и какому принципалу разрешен или запрещен; процессор базы данных, который выдает ответ на запрос базы данных, основанный, по меньшей мере, частично на информации о защите, хранящейся в дескрипторе защиты, который оценивается на основе информации, хранящейся в базе данных, и контекста пользователя, делающего запрос; запросный компонент, содержащий оптимизатор запросов, который определяет оптимальный путь получения ответа на запрос. 5 н. и 15 з.п. ф-лы, 9 ил., 2 табл.

Формула изобретения RU 2 373 571 C2

1. Система для предоставления защищенного доступа к базе данных, содержащая:
запоминающее устройство для дескрипторов защиты, которое хранит дескрипторы защиты, воплощающие информацию о защите, связанную, по меньшей мере, с одной строкой базы данных, причем база данных содержит, по меньшей мере, одну таблицу, содержащую, по меньшей мере, одну строку и, по меньшей мере, два столбца, а в одном из столбцов хранится дескриптор защиты, связанный со строкой, причем дескриптор защиты идентифицирует информацию о защите, хранящуюся в запоминающем устройстве для дескрипторов защиты и связанную с этой строкой, при этом информация, хранящаяся в дескрипторе защиты, содержит сведения о том, какой тип доступа и какому принципалу разрешен или запрещен;
процессор базы данных, который выдает ответ на запрос базы данных, причем этот ответ основан, по меньшей мере, частично на информации о защите, хранящейся в дескрипторе защиты, который оценивается на основе информации, хранящейся в базе данных, и контекста пользователя, делающего запрос; и
запросный компонент, содержащий оптимизатор запросов, который определяет оптимальный путь получения ответа на запрос.

2. Система по п.1, дополнительно содержащая базу данных.

3. Система по п.1, в которой база данных содержит, по меньшей мере, одну из реляционной базы данных, объектной базы данных и/или объектно-реляционной базы данных.

4. Система по п.1, в которой запрос основан, по меньшей мере, частично на языке структурированных запросов.

5. Система по п.1, в которой запрос основан, по меньшей мере, частично на дополнениях языка программирования на основе запросов набором операторов, которые обеспечивают создание, модификацию и удаление дескрипторов защиты.

6. Система по п.1, в которой информация, хранящаяся в запоминающем устройстве для дескрипторов защиты, содержит сведения о типе доступа.

7. Система по п.1, в которой информация, хранящаяся в запоминающем устройстве для дескрипторов защиты, содержит сведения о принципале, к которому применяется информация о защите.

8. Система по п.7, в которой сведения о принципале содержат, по меньшей мере, одно из имени пользователя, идентификатора пользователя и/или типа пользователя.

9. Система по п.1, в которой дескриптор защиты представляет собой упорядоченный набор объектов управления доступом.

10. Система по п.1, в которой база данных выполнена независимой от информации о защите, хранящейся в дескрипторе защиты.

11. Система по п.1, в которой оптимизатор запросов применяет стратегию оптимизации на основе затрат.

12. Система по п.1, дополнительно содержащая кэш сеансов пользователя, где хранится вычисленный результат ответа на вопрос о том, имеет ли заданный защитный контекст заданное разрешение применительно к конкретному дескриптору защиты.

13. Система по п.1, применяемая для облегчения защищенного доступа к компьютерным файлам.

14. Система по п.1, применяемая для облегчения защищенного доступа, по меньшей мере, к одному из таких объектов, как папки, контакты и сообщения электронной почты.

15. Способ защищенного доступа к базе данных, заключающийся в том, что:
создают таблицу со столбцом дескрипторов защиты, воплощающих информацию о защите, связанную, по меньшей мере, с одной строкой базы данных, причем база данных содержит, по меньшей мере, одну таблицу, содержащую, по меньшей мере, одну строку и, по меньшей мере, два столбца, причем дескриптор защиты идентифицирует информацию о защите, хранящуюся в запоминающем устройстве для дескрипторов защиты и связанную с этой строкой, при этом информация, хранящаяся в дескрипторе защиты, содержит сведения о том, какой тип доступа и какому принципалу разрешен или запрещен; принимают информацию, включающую в себя запрос и пользовательский контекст;
выдают ответ на запрос, причем этот ответ содержит строки таблицы, если они имеются, которые удовлетворяют запросу, и для которых информация о защите, связанная, со строкой, удовлетворяется информацией, включающей в себя пользовательский контекст; и
оптимизируют запрос перед выдачей ответа посредством оптимизатора запросов, использующего стратегию оптимизации на основе затрат.

16. Способ по п.15, в котором предусмотрена выдача ответа на запрос, в процессе которой
для каждой строки таблицы, к которой осуществляется доступ, определяют, удовлетворяется ли дескриптор защиты, связанный с этой строкой, информацией, включающей в себя пользовательский контекст.

17. Считываемый компьютером носитель, на котором хранятся выполняемые компьютером команды для осуществления способа по п.15.

18. Способ облегчения создания защищенной базы данных, заключающийся в том, что:
создают таблицу со столбцом дескрипторов защиты;
создают дескриптор защиты, связанный с упомянутой таблицей, заполняют, по меньшей мере, одну строку в таблице идентификатором дескриптора защиты, причем идентификатор дескриптора защиты идентифицирует информацию о защите, хранящуюся в запоминающем устройстве для дескрипторов защиты и связанную с этой строкой, причем информация, хранящаяся в дескрипторе защиты, содержит сведения о том, какой тип доступа и какому принципалу разрешен или запрещен; осуществляют прием информации, включающей в себя запрос и пользовательский контекст;
выдают ответ на запрос, причем этот ответ содержит строки, если они имеются, которые удовлетворяют запросу, и для которых информация о защите, связанная, со строкой, удовлетворяется информацией, включающей в себя пользовательский контекст; и
оптимизируют запрос посредством оптимизатора запросов, использующего стратегию оптимизации на основе затрат.

19. Способ по п.18, при осуществлении которого запрос оптимизируют перед выдачей этого запроса.

20. Считываемый компьютером носитель, на котором хранятся выполняемые компьютером команды для осуществления способа по п.18.

Документы, цитированные в отчете о поиске Патент 2009 года RU2373571C2

ЕР 0913967 А2, 06.05.1999
МИКРОКОМПЬЮТЕР 1998
  • Седлак Хольгер
  • Брюкльмайр Франц-Йозеф
RU2198424C2
US 2002063154 А1, 30.05.2002
US 2002120685 А, 29.08.2002
US 4829427 А, 09.05.1989.

RU 2 373 571 C2

Авторы

Дутта Танмой

Каннингхэм Конор

Стеффани Стефано

Чандер Гириш

Хэнсон Эрик Н.

Даты

2009-11-20Публикация

2004-07-26Подача