Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
колоток_абд.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
402.94 Кб
Скачать

3) Понятие пользователя. Его создание и управление

Обеспечение безопасности данных - одна из основных задач SQL. Для защиты данных используются следующие основные принципы:

1) все манипуляции с данными выполняются от имени конкретного пользователя и в соответствии с данными ему правами;

2) сами объекты защищены;

3) СУБД использует систему привилегий.

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

Пользователь определяется командой: CREATE USER <имя пользователя> IDENTIFIED BY <пароль>;

После выполнения этой команды пользователь становится известен БД, но не может выполнять никаких операций.

Удаление пользователя производится командой:

DROP USER <имя пользователя>;

4) Назначение прав пользователю

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

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

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

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

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

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

INDEX – пользователь имеет право создавать индекс к таблице.

SYNONYM - пользователь имеет право создавать синоним для объекта.

ALTER - пользователь имеет право выполнять ALTER TABLE в таблице;

EXECUTE - пользователь имеет право выполнять процедуру .

GRANT < List of names right> ON <Name of table> TO <List of users>;

Исключение – список полей допускается в привилегиях REFERENCES, UPDATE.

GRANT < List of <names right> (List of attributions) > ON <Name of table> TO <List of users>;

GRANT UPDATE (MARK) ON USP

TO USER1; В строгой интерпретации стандарта ANSI невозможно предоставить привилегии для нескольких таблиц одновременно одной командой GRANT.

SQL поддерживает два аргумента в команде GRANT - ALL, PUBLIC.

ALL ( ALL PRIVILEGES) – вместо списка привилегий;

Например команда:

GRANT ALL ON PREDMET TO IVANOV;

Дает весь набор привилегий в таблице PREDMET пользователю IVANOV.

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

GRANT SELECT ON USP TO PUBLIC;

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

Передача прав другим пользователям осуществляется командой:

GRANT < List of names right> ON <Name of table> TO <List of users>

WITH GRANT OPTION;

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