На рынке IT услуг с 1994 года
Русский порт
IT компания нового поколения

Организация защиты данных с помощью SQL на примере СУБД MySQL. Управление привилегиями.

Просмотр привилегий

Сведенья о привилегиях доступа содержаться в таблицах системной БД MySQL.

Глобальные привилегии хранятся в таблице user. Каждая привилегия является отдельной колонкой и может иметь всего два значения: разрешено (Y) и запрещено (N).

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

Для просмотра привилегий пользователя существует команда SHOW GRANTS. Она показывает команду, которая воссоздает текущие привилегии.

 

Настройка привилегий

Любые изменения относительно настроек привилегий рекомендуется выполнять за счет трех основных команд:

  • GRANT [privileges] ON [objects] TO [user];
  • GRANT [privileges] ON [objects] TO [user] IDENTIFIED BY [password];
  • REVOKE [privileges] ON [objects] FROM [user];

В предыдущей статье уже были примеры построенные относительно этих команд.

 

Представления

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

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

 

Привилегии и производительность

На первый взгляд, привилегии никак не связаны с производительностью, но в некоторых случаях это не так. Вот какие факторы следует принять во внимание:

  • Слишком много привилегий
  • Слишком детальные привилегии
  • Привилегии на доступ к столбцам и кэш запросов
Узлов Александр
Посмотреть все статьи

Комментарии:

Нет комментариев

Написать новый комментарий [+]

Имя:

E-mail:

Комментарий:


Код проверки*: