Определение привилегий доступа к ресурсам БД и операций с ними
Функция
Определение оператора предоставления пользователю привилегий доступа к ресурсам БД и операций с ними.
Спецификация
::=::={SELECT | INSERT | DELETE | UPDATE | ALTER | INDEX | REFERENCES}[, …]}
ON [TABLE] [имя схемы.]{имя таблицы|имя представления|имя синонима}
TO {PUBLIC|{имя пользователя|имя роли}[, …]}
::=TO имя пользователя[, …]
[IDENTIFIED BY тип идентификации[, …]]
::=Синтаксические правила
-
< Имя таблицы >должно задавать базовую таблицу. -
Опция
ALLравнозначна списку, включающему все привилегии для< имени таблицы >(< имени представления >):ALL=SELECT+INSERT+DELETE+UPDATE+ALTER+INDEX+REFERENCES.Например, GRANT SELECT, index ON Auto TO PUBLIC; GRANT all ON Auto TO "Иванов";
-
Если вместо списка пользователей указано
PUBLIC, то всем пользователям (существующим и будущим) будут предоставлены определенные данным оператором права на указанную таблицу.grant all on auto to public;
-
Вторая форма оператора
GRANTпредназначена для определения новых пользователей с указанием их категорий либо изменения категорий существующих пользователей.grant connect to USER1, "Иванов", "Nik" identified by 'hgt66#', '6sыф_()', '123';
-
Конструкция
IDENTIFIED BY SYSTEMустанавливает для пользователя режим встроенной аутентификации операционной системой (см. пункт «Создание пользователя»). -
Конструкция
IDENTIFIED BY PROTOCOLустанавливает для пользователя режим встроенной аутентификации по имени пользователя, зарегистрированного в ОС (см. пункт «Создание пользователя»).grant connect to USER1, USER2 identified by PROTOCOL;
-
Конструкция
IDENTIFIED BY LDAPпредоставляет указанную привилегию пользователю, аутентификация которого выполняется через LDAP-сервер (см. пункт «Создание пользователя»).grant connect to USER1, USER2 identified by LDAP;
-
Конструкция
IDENTIFIED BY KRBпредоставляет указанную привилегию пользователю, идентификация и аутентификация которого выполняется через KRB-сервер (см. пункт «Создание пользователя»).grant connect to USER1, USER2 identified by KRB;
-
Количество пользователей и < типов идентификации > может быть разным. При этом количество пользователей должно быть не меньше количества < типов идентификации >. Соответствие < пользователь >–< тип идентификации > производится слева направо. Пользователи, оставшиеся без соответствующих им < типов идентификации >, получат «пустой» пароль (18 пробелов).
GRANT RESOURCE TO User_1,User_2 IDENTIFIED BY 'Hi_Life'; (у пользователя User_2 будет пустой пароль)
-
Длина
< символьного литерала >, задающего< пароль >, должна быть не более 18 символов. -
Привилегии могут предоставляться только владельцем указанной таблицы/представления/синонима.
Примечание
Привилегия, назначенная синониму таблицы или представления, будет унаследована соответствующей таблицей или представлением и не будет удалена при удалении синонима.
-
Нельзя назначить привилегии самому себе.
-
Вводить нового пользователя (с определением
< категории пользователя >) может только администратор БД (категория DBA). -
Привилегия
REFERENCES, данная пользователем U1 пользователю U2 на таблицу U1.T1, разрешает пользователю U2 создавать ссылки (REFERENCES) на эту таблицу, при этом пользователь U2 должен иметь категорию как минимумRESOURCE. -
Для удаления ссылок привилегия
REFERENCESне требуется. -
Привилегия
BACKUPразрешает пользователю БД оперативное архивирование БД или её отдельных объектов.