Для любой базы данных Oracle имеется ряд установленных пользователей Oracle, каждый из которых может иметь свои собственные таблицы и другие объекты базы данных. Владелец объекта базы данных (например, таблицы) может делать с этим объектом все, что угодно, включая вставку, изменение, удаление отдельных или всех строк, а также изменение или удаление структуры таблицы.
Чтобы другие пользователи Oracle, которые не имеют собственной таблицы, могли вносить в нее изменения, им должны быть предоставлены привилегии системного либо объектного уровня.
1. Системные привилегии
Существует более 80 привилегий системного уровня, управляющих тем, что каждый пользователь Oracle может делать в базе данных. Администратор базы данных управляет предоставлением конкретных привилегий другим пользователям Oracle с использованием оператора GRANT языка SQL.
Системная привилегия ANY TABLE
Системными привилегиями, от которых зависит то, что один пользователь Oracle может делать с таблицами другого пользователя, ЯВЛЯЮТСЯ DELETE ANY TABLE, UPDATE ANY T ABLE И INSERT ANY TABLE. Если пользователь Oracle имеет эти привилегии системного уровня, он может вставлять, изменять и удалять данные в таблицах, которыми он не владеет и владелец которых не предоставил ему явно право изменять эти данные. Этот пользователь, по сути дела, становится своего рода «суперпользователем» и может изменять данные где угодно в базе данных.
ВНИМАНИЕ!
Системные привилегии ANY позволяют пользователю, имеющему их, изменять основные таблицы словаря данных.
Обычно эти привилегии предоставляются только учетным записям администратора базы данных Oracle, а не разработчика или конечного пользователя.
СОВЕТ.
Используйте представление словаря данных SESSION_PRIVS, чтобы узнать, какая системная привилегия действует в настоя16.8.2. Привилегии объектного уровня
Общепринятым способом, позволяющим другим пользователям Oracle изменять данные, является предоставление им владельцем этой таблицы права вставлять, изменять и удалять строки.