Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы к зачету.docx
Скачиваний:
7
Добавлен:
19.09.2019
Размер:
590.16 Кб
Скачать

Безопасность и управление доступом средствами sql.

Авторизация пользователей

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

  • DBA - класс полномочий администратора базы данных.

  • Resource - класс полномочий, имеющих право создавать такие объекты баз данных, как таблицы данных, представления, хранимые процедуры и функции, а также триггеры;

  • Remote DBA - класс полномочий, имеющих право участвовать в репликации данных.

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

Привилегии, применимые к таблицам данных (на примере СУБД SYBASE SQL)

Название привилегии

Описание привилегии

ALTER

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

DELETE

Разрешает удалять записи из таблиц и представлений

INSERT

Определяет правомочность добавление новых записей в таблицы и представления

REFERENCES

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

SELECT

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

UPDATE

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

ALL

Устанавливает все привилегии по манипулированию таблицей

Привилегии могут быть как индивидуальными, так и групповыми.

Управление списком пользователей (СУБД PostgreSQL) осуществляется командами CREATE (DROP) USER (GROUP), для изменения полномочий пользователя или группы используются команды ALTER USER (GROUP)

Синтаксис команд:

  1. Создание нового пользователя БД

CREATE USER имя_пользователя WITH

SYSID идентификатор_пользователя

PASSWORD ‘пароль

привилегия_1 | привилегия_2 …

IN GROUP имя_группы …

  1. Создание группы пользователей БД

CREATE GROUP имя_группы WITH

SYSID идентификатор_группы

USER имя_пользователя_1, имя_пользователя_2, …

  1. Удаление пользователя и группы

DROP USER имя_пользователя

DROP GROUP имя_группы

  1. Изменение атрибутов пользователя и группы

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

ALTER USER имя_пользователя WITH

PASSWORD ‘пароль’

привилегия_1 | привилегия_2 …

IN GROUP имя_группы …

- Включение/Исключение пользователя в группу

ALTER GROUP имя_группы ADD/DROP USER имя_пользователя

Управление доступом к хранимым объектоам БД

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

  • механизм VIEW (представлений), используемый для скрытия данных от пользователей, не обладающих правом доступа;

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

Привилегии предоставляются с помощью предложения GRANT (предоставить), общий формат которого имеет вид:

GRANT привилегии ON имя_объекта TO пользователи;

К таблицам (представлениям) относятся привилегии SELECT, DELETE, INSERT и UPDATE [(столбцы)]

Предложение - GRANT SELECT, UPDATE (Стоимость) ON S TO U4;

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

Отмена привелегий осуществляется с помощью предложения REVOKE:

REVOKE привилегии ON объект FROM пользователи;

Например, можно отобрать у пользователя U4 право изменения значений атрибута Стоимость :

REVOKE UPDATE (Стоимость) ON S FROM U4;