Определение привилегий доступа к ресурсам БД и операций с ними
Функция
Определение оператора предоставления пользователю привилегий доступа к ресурсам БД и операций с ними.
Спецификация
::=
::=
{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
разрешает пользователю БД оперативное архивирование БД или её отдельных объектов.