Обеспечение безопасности базы данных
В этой главе…
- Управление доступом к таблицам базы данных
- Принятие решения о предоставлении доступа
- Предоставление полномочий доступа
- Аннулирование полномочий доступа
- Предотвращение попыток несанкционированного доступа
- Предоставление полномочий предоставлять полномочия
Системный администратор должен обладать различными специальными знаниями, касающимися работы системы. Поэтому в предыдущих главах рассказывалось о тех частях SQL, с помощью которых создаются базы и выполняется обработка данных. В главе 3 вы познакомились с теми средствами SQL, которые предназначены для защиты базы данных. В этой главе более подробно рассматривается вопрос неправильного использования базы данных.
Администратор базы данных может управлять доступом к ней пользователей, а также определять уровень этого доступа, предоставляя или отзывая доступ к отдельным компонентам системы. Администратор даже может предоставлять или отзывать права на предоставление или отзыв полномочий. Правильное использование средств поддержания безопасности SQL обеспечивает мощную защиту важных данных. В то же время неразумное использование этих средств лишь создает проблемы обычным пользователям, которые всего лишь пытаются выполнить свою работу.
Конечно, в базах данных часто находится жизненно важная информация, к которой нельзя подпускать кого угодно. Поэтому в SQL имеются разные уровни доступа – от полного доступа до полного его отсутствия, и между ними находится несколько уровней частичного доступа. Решив, какие именно операции может выполнять каждый уполномоченный пользователь, администратор базы данных может моментально предоставить пользователю все нужные для его работы права. При этом администратор может ограничить доступ этого пользователя к определенным частям базы данных.
Язык управления данными как часть SQL
Операторы SQL, используемые для создания баз данных, составляют группу, которая называется языком определения данных (Data Definition Language, DDL). Создав базу данных, для добавления, изменения или удаления из нее данных можно использовать другие инструкции, известные под собирательным названием язык манипулирования данными (Data Manipu-п Language, DML). В SQL есть также операторы, которые не попадают ни в одну из этих категорий. Иногда программисты называют эти операторы языком управления данными (Data Control Language, DCL). Операторы DCL в основном защищают базу данных от несанкционированного доступа, от нежелательных последствий одновременной работы сразу нескольких пользователей, а также от аварий в электрических сетях и неисправностей оборудования. В этой главе рассказывается о защите от несанкционированного доступа.
Уровни пользовательского доступа
SQL:2003 обеспечивает контролируемый доступ к девяти функциям управления базами данных.
- Создание, просмотр, обновление и удаление: эти функции соответствуют операторам INSERT, SELECT, UPDATE и DELETE (см. главу 6).
- Ссылки задаются при помощи ключевого слова REFERENCES (см. главы 3 и 5). Ссылки задают ограничения таблицы, зависящей от другой таблицы базы данных.
- Использование, которое указывается с помощью ключевого слова USAGE, относится к доменам, наборам символов, сопоставлениям и трансляциям. (О доменах, наборах символов, сопоставлениях и трансляциях см. в главе 5.)
- Определение новых типов данных задается с помощью ключевого слова UNDER при работе с типами данных, определяемыми пользователем.
- Ответ на событие задается с помощью ключевого слова TRIGGER. Благодаря ему выполняется заданный оператор или целый блок операторов SQL всякий раз при возникновении предопределенного события.
- Выполнение стандартной программы задается с помощью ключевого слова EXECUTE.