Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
otvety_na_SUBD.docx
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
222 Кб
Скачать
☆
  1. Задание прав уровня базы данных.

Таблица mysql.db

Применяется для всех объектов указанной БД

• Host: CHAR (60) Строка '%' означает - при доступе с любого хоста. Пустое поле означает необходимость посмотреть в таблицу host.

• DB: CHAR (64) '%' или пустое поле означает - любая БД.

• User: CHAR (16) Пустое поле - анонимный пользователь.

Привилегии: enum('N','Y'), по умолчанию - 'N'

• select - выборка из строк таблицы

• insert - вставка строки в таблицу

• update - изменение строки таблицы

• delete - удаление строки таблицы

• create - создавать БД/таблицу

• drop - удалять БД/таблицу

• grant – разрешает передавать свои привилегии другим

• index - создавать/удалять индексы таблицы

• alter - изменять формат таблицы, в том числе переименовать ее, что позволяет обмануть систему прав доступа

Вспомогательная таблица mysql.host

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

• Host: CHAR(60),PRI. '%' или пустое поле означает - любой хост.

• DB: CHAR(64),PRI. '%' или пустое поле означает - любая БД. Поля привилегий те же что в БД

  1. Задание прав уровня таблицы.

Таблица mysql.tables_priv

• Host: CHAR (60). '%' или пустое поле означает - любой хост.

• DB: CHAR (60).Не м.б. пустым или содержать шаблоны.

• User: CHAR (16). Пустое поле - анонимный пользователь.

• Table_name: CHAR(60). Не м.б. пустым или содержать шаблоны. Хранит имя табли-цы

• Grantor: CHAR(77). Пользователь, предоставивший привилегии

• Timestamp: timestamp(14). Время предоставления привилегий

• Table_priv: set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter')

• Column_priv: set('Select','Insert','Update','References')

//select - выборка из строк таблицы

//insert - вставка строки в таблицу

//update - изменение строки таблицы

  1. Задание прав уровня столбца.

Таблица mysql.columns_priv

  • Host: CHAR (60). '%' или пустое поле означает - любой хост.

  • DB: CHAR (60). Не м.б. пустым или содержать шаблоны.

  • User: CHAR (16). Пустое поле - анонимный пользователь.

  • Table_name: CHAR (60). Не м.б. пустым или содержать шаблоны.

  • Column_name: CHAR (60). Не м.б. пустым или содержать шаблоны.

  • Timestamp: timestamp(14)время предоставления привилегий

  • Column_priv: set('Select','Insert','Update','References')

//select - выборка из строк таблицы

//insert - вставка строки в таблицу

//update - изменение строки таблицы

  1. Команды grant и revoke.

В стандарте SQL определены два оператора: GRANT и REVOKE соответственно для предоставления и отмены привилегий.

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

GRANT priv[<column_list>] ON ([tab|*|*.*|db.*]) ТО user [Identified by password]

Priv – привилегия которая предоставляется: Select, Insert, Update, References и т.д.

column_list – список столбец,если привелегия уровня столбца.

Tab – имя таблицы, * – все таблицы, *.* – все таблицы всех БД, db – имя БД.

User – имя пользователя которому предоставляются привилегии, должно содержать имя хоста.

Password – пароль, который установлен данному пользователю.

Для отмены ранее назначенных привилегий в стандарте SQL определен оператор REVOKE. Оператор отмены привилегий имеет следующий синтаксис:

REVOKE priv ON ([tab|*|*.*|db.*]) FROM user

ALL – Все привелегии.

USAGE – не дает никаких привелегий, но пользователь заводится.

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