Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные лаботы ОИС.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
3.38 Mб
Скачать

2.2. Безопасность баз данных и привилегии

При хранении информации в СУБД одной из основных задач является обеспечение безопасности данных. В языке SQL используются следующие основные принципы защиты данных:

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

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

  • В SQL используется система привилегий, т.е. прав пользователя на проведение тех или иных действий над определенным объектом базы данных.

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

  • GRANT (допуск);

  • REVOKE (отмена).

Каждый пользователь в среде SQL имеет специальное идентификационное имя или номер (ID) доступа. Команда, посланная в БД, ассоциируется с определенным пользователем, т.е. специальным идентификатором доступа. Поскольку это относится к SQL БД, ID разрешения – это имя пользователя, и SQL может использовать специальное ключевое слово USER, которое ссылается к идентификатору доступа, связанному с текущей командой Команда интерпретируется и разрешается (или запрещается) на основе информации, связанной с идентификатором доступа пользователя, подавшего команду.

В системах с большим количеством пользователей, существует специальная процедура входа в систему, которую пользователь должен обязательно выполнить для получения доступа. Эта процедура определяет, какой именно ID доступа будет связан с текущим пользователем. Обычно каждый человек, использующий БД, имеет свой собственный ID доступа и при регистрации превращается в действительного пользователя. Однако достаточно часто пользователи, имеющие много задач, могут регистрироваться под различными ID доступа, или наоборот – один ID доступа может использоваться несколькими пользователями. С точки зрения SQL нет никакой разницы между этими двумя случаями - он воспринимает пользователя просто как его ID доступа.

SQL БД может использовать собственную процедуру входа в систему или может позволить другой программе (например, операционной системе компьютера) обрабатывать файл регистрации и получать ID доступа. Однако, каким бы способом СУБД не воспользовалась, в любом случае SQL будет иметь ID доступа для того, чтобы связать его с действиями пользователя, для которого будет иметь значение ключевое слово USER.

Каждый пользователь в SQL БД имеет набор привилегий. Эти привилегии могут изменяться со временем – новые добавляться, старые удаляться. Стандартные SQL привилегии, определенные ANSI – это привилегии объекта. Это означает, что пользователь имеет привилегию для выполнения данной команды только на определенном объекте в БД. Привилегии объекта связаны одновременно и с пользователями и с таблицами, т. е. привилегия дается определенному пользователю в указанной базовой таблице представлении. При этом надо помнить, что пользователь, создавший таблицу любого вида, является ее владельцем. Это в свою очередь означает, что такой пользователь имеет все привилегии в этой таблице и может передавать привилегий другим пользователям для этой таблицы.

Привилегии, которые можно назначить пользователю, следующие:.

  • SELECT – пользователь с этой привилегией может выполнять запросы к таблице;

  • INSERT – пользователь с этой привилегией может выполнять вставку записей, т.е. команду INSERT в таблице;

  • UPDATE – пользователь с этой привилегией может выполнять корректировку данных, т.е. команду UPDATE к данной таблице;

  • DELETE – пользователь с этой привилегией может выполнять команду DELETE в таблице;

  • REFERENCES – с этой привилегией пользователь имеет возможность определить внешний ключ, который использует один или более столбцов данной таблицы, как родительский ключ;

  • INDEX – дает право пользователю создавать индекс в таблице;

  • SYNONYM – пользователь, обладающей этой привилегией, имеет право создавать синоним для объекта;

  • ALTER дает право пользователю выполнять команду изменения структуры (ALTER TABLE) в данной таблице.