Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Управл_данными / 18-безопасн

.pdf
Скачиваний:
17
Добавлен:
03.06.2015
Размер:
494.87 Кб
Скачать

Управление данными

БЕЗОПАСНОСТЬ БАЗ ДАННЫХ

Зудилин А.Э. 2013

БЕЗОПАСНОСТЬ БАЗ ДАННЫХ

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

При этом, данные должны быть доступны для определенных пользователей

Большинство СУБД предоставляет механизмы, посредством которых они могут разрешить или ограничить доступ к данным.

В основе любой системы безопасности лежат авторизация и аутентификация пользователей.

Так называется процесс, в ходе которого пользователь подтверждает, что он — это именно он и что ему разрешено проводить операции, которые он собирается выполнить

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

другие ведут свои собственные списки пользователей и паролей,

третьи интегрируются с внешними серверами службы каталогов.

2

Механизмы обеспечения безопасности

1)ограничение доступа к схеме БД (создание таблиц, изменение или уничтожение существующих таблиц и т.д.);

2)ограничение доступа к отдельным базам данных или таблицам;

3)ограничение типа доступа (только для чтения, доступ к отдельным столбцам и т.д.);

4)организация доступа к таблицам только через представления или хранимые процедуры;

5)создание нескольких уровней безопасности, вследствие чего обеспечивается различная степень доступа и контроля на основе регистрационного имени пользователя;

6)ограничение возможности управлять учетными записями пользователей.

3

Управление привилегиями пользователей

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

Администраторы баз данных, сами создают пользователей и дают им привилегии.

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

Привилегии - это то, что определяет, может ли указанный пользователь выполнить данную команду.

Имеется несколько типов привилегий, соответствующих нескольким типам операций.

Привилегии даются и отменяются двумя командами SQL: GRANT (допуск) и REVOKE (отказ в допуске).

4

Термины

Пользователь (user). Каждый пользователь в среде SQL, имеет специальное идентификационное имя или номер.

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

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

Привилегия дается определенному пользователю по отношению к указанной таблице.

Пользователь создавший таблицу, является владельцем этой таблицы.

Это означает, что пользователь имеет все привилегии в этой таблице и может передавать привилегии к этой таблице другим пользователям.

5

Список привилегий

SELECT

Пользователь с этой привилегией может выполнять запросы к таблице.

INSERT

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

UPDATE

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

DELETE

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

REFERENCES

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

ALTER

Дает право выполнять команду ALTER TABLE в таблице.

6

Пример

Предположим, что пользователь Olga владеет таблицой ЗАКАЗЧИКИ и хочет позволить пользователю Alex выполнить запрос к ней.

Olga должна в этом случае ввести следующую команду:

GRANT SELECT ON ЗАКАЗЧИКИ TO Alex

Теперь Alex может выполнить запросы к таблице ЗАКАЗЧИКИ.

Он может только выбрать значения, но не может выполнить любое действие, которые бы изменяло на значения в таблице ЗАКАЗЧИКИ.

В отношении других привилегий синтаксис тот же:

GRANT INSERT ON ЗАКАЗЧИКИ TO Alex

GRANT UPDATE ON ЗАКАЗЧИКИ TO Alex

7

Можно предоставлять список привилегий для списка пользователей:

GRANT SELECT,UPDATE ON ЗАКАЗЧИКИ TO Alex,Oleg

Ограничение привилегий на отдельные столбцы (для UPDATE):

GRANT UPDATE(Adress,Phone) ON ЗАКАЗЧИКИ TO Alex

Предоставление всех привилегий одному пользователю:

GRANT ALL PRIVILEGES ON ЗАКАЗЧИКИ TO Alex

--- или кратко :---

GRANT ALL ON ЗАКАЗЧИКИ TO Alex

Предоставление привилегии для всех пользователей:

GRANT SELECT ON ЗАКАЗЧИКИ TO PUBLIC

8

Передача права предоставления привилегий

Иногда, создателю таблицы может потребоваться, чтобы другие пользователи могли получить право раздавать определенные привилегии для его таблицы.

SQL позволяет делать это с помощью предложения WITH GRANT OPTION

GRANT SELECT ON ЗАКАЗЧИКИ TO Alex

WITH GRANT OPTION

9

Отмена привилегий

Удаление привилегии сводится к команде REVOKE, почти стандартному средству с достаточно понятной формой записи.

Синтаксис команды REVOKE похож на GRANT, но имеет обратный смысл.

Чтобы удалить привилегию INSERT для Alex в таблице ЗАКАЗЫ, Вы можете ввести:

REVOKE INSERT ON ЗАКАЗЫ FROM Alex

Однако, здесь имеется некоторая неясность: если пользователь с правом передавать привилегии другим, сам теряет это право, остальные также их потеряют?

Наиболее общий подход такой:

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

10

Соседние файлы в папке Управл_данными