Введение в модель данных SQL

Поддержка авторизации доступа к данным в языке SQL


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

В языке SQL (SQL:1999) предусмотрены возможности контроля доступа к разным объектам базы данных, в том числе к следующим объектам:

  • таблицам;
  • столбцам таблиц;
  • представлениям;
  • доменам;
  • наборам символов1);
  • порядкам сортировки символов (collation);
  • преобразованиям (translation);
  • триггерам;
  • подпрограммам, вызываемым из SQL;
  • определенным пользователями типам.

В совокупности в SQL:1999 может поддерживаться девять видов защиты разных объектов в соответствии со следующими возможными действиями (см. табл.18.1).

При разработке средств контроля доступа к объектам баз данных создатели SQL придерживались принципа сокрытия информации об объектах, содержащихся в схеме базы данных, от пользователей, которые лишены доступа к этим объектам. Другими словами, если некоторый пользователь не обладает, например, привилегией на просмотр таблицы PRO, то при выполнении операции SELECT * FROM PRO он получит такое же диагностическое сообщение, как если бы таблица PRO не существовала. Если бы в случае отсутствия этой таблицы и в случае отсутствия привилегии доступа выдавались разные диагностические сообщения, то непривилегированный пользователь получил бы данные о том, что интересующая его таблица существует, но он лишен доступа к ней.

Таблица 18.1.

Вид защиты и соответствующее действиеНазвание привилегииПрименимо к следующим объектам
ПросмотрSELECTТаблицы, столбцы, подпрограммы, вызываемые из SQL
ВставкаINSERTТаблицы, столбцы
МодификацияUPDATEТаблицы, столбцы
УдалениеDELETEТаблицы
СсылкаREFERENCESТаблицы, столбцы
ИспользованиеUSAGEДомены, определенные пользователями типы, наборы символов, порядки сортировки символов, преобразования
ИнициированиеTRIGGERТаблицы
ВыполнениеEXECUTEПодпрограммы, вызываемые из SQL
ПодтипизацияUNDERСтруктурные типы



Содержание  Назад  Вперед