Оператор GRANT используется для назначения разрешений на выполнения операций с объектом базы данных определенному пользователю или группе пользователей. Несколько упрощенный синтаксис этого оператора выглядит следующим образом:
GRANT {разрешения}
[ON {таблица}]
TO {пользователь}
В качестве разрешения можно указывать как операторы языка определения данных, так и языка манипулирования данными. Если нужно предоставить все допустимые разрешения, следует воспользоваться разрешением ALL. Можно определить разрешения как для всей таблицы, так и для ее отдельных полей (только разрешения SELECT и UPDATE). Для указания разрешений для отдельных полей используется следующий синтаксис:
GRANT SELECT({поле1}, {поле2},...), UPDATE({поле1}, {поле2},...)
ON {таблица}
TO {пользователь}
Управление разрешениями значительно упрощается с использованием ролей. Преимущества использования ролей заключается в следующем:
- упрощается работа по предоставлению разрешений;
- упрощается механизм изменения разрешений;
- повышается производительность системы за счет сокращения количества проверок отдельных разрешений.
Рекомендуется на этапе формирования политики безопасности распределить всех пользователей по группам с одинаковыми правами доступа к данным и для каждой группы определить свою роль.