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

С помощью команд управления данными можно управлять доступом пользователей к базе данных.

Команда GRANT используется для назначения привилегий пользователям.

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

Синтаксис команды GRANT

  • system_priv — системная привилегия

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

  • user — пользователь

  • PUBLIC —  привилегия передается всем пользователям

  • WITH ADMIN OPTION если предоставлены системные полномочия или роли, то параметр позволяет пользователю передать полномочие или роль другим пользователям или ролям

Пример 1

Предположим, пользователь Р1 является владельцем таблицы Student и нужно передать пользователю Р2 право на формулирование запросов к этой таблице:

GRANT SELECT ON Student TO P2;

Пример 2

Для передачи прав на другие привилегии синтаксис тот же самый. Пользователь Р1, являющийся владельцем таблицы Student, может разрешить пользователю Р2 вводить строки в нее:

GRANT INSERT ON Student TO P2;

Пример 3

Передача привилегий не ограничивается передачей единственной привилегии единственному пользователю с помощью одной команды GRANT. Допустимы списки привилегий и/или пользователей с элементами, разделенными запятыми:

GRANT SELECT, INSERT ON Student TO P2;

GRANT SELECT, INSERT ON Student TO P2, Р3;

Пример 4

Можно разрешить пользователю изменять значения любого или всех столбцов таблицы:

GRANT UPDATE ON Student TO P2;

GRANT UPDATE (Fam,Ball) ON Student TO P2;

Пример 5

Если необходимо предоставить кому-то все полномочия на конкретный объект, используется ключевое слово ALL:

GRANT ALL ON Student ТО Р2;

Пример 6

Когда передаются привилегии с атрибутом PUBLIC, который относится  к пользователям, а не к привилегиям, то все пользователи получают их автоматически. Чаще всего это применяется для привилегии SELECT для определенных таблиц или представлений, которые нужно предоставить каждому пользователю для рассмотрения. Разрешить каждому пользователю просматривать таблицу Student можно следующей командой:

GRANT SELECT ON Student TO PUBLIC;

Пример 7.

Иногда создатель таблицы хочет, чтобы другие пользователи имели право передавать привилегии на эту таблицу. Это можно сделать с помощью предложения WITH GRANT OPTION. Если пользователь Р1 желает, чтобы пользователь Р2 имел право передавать полномочия на работу с таблицей Student другим пользователям, то он должен передать пользователю Р2 привилегию на выполнение соответствующих команд:

GRANT SELECT, INSERT ON Student ТО Р2 WITH GRANT OPTION;

  1. Sql. Команда revoke.

С помощью команды REVOKE осуществляется отмена привилегий, синтаксис команды REVOKE аналогичен синтаксису команды GRANT.

Пример 1. Отмена привилегии CREATE TABLE на создание таблиц в базе данных у пользователя user

REVOKE CREATE TABLE FROM user;

Пример 2. Отмена привилегии SELECT на выборку записей из таблицы

REVOKE SELECT ON table_name FROM user;

Пример 3. Отмена привилегий UPDATE и DELETE на изменение и удаления записей

REVOKE UPDATE, DELETE ON table_name FROM user;

Пример 4. Отмена общих привилегий

REVOKE ALL ON table_name FROM user;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]