Вы можете предоставить объектные привилегии пользователям и ролям с помощью команды GRANT.
Примеры
Предоставьте пользователям hanne u ernie привилегию для запроса таблицы S_EMP.
SVRMGR> GRANT SELECT ON s_emp TO hanne, ernie;
Statement processed.
Предоставьте пользователю hanne привилегии, необходимые для запроса таблицы S_EMP; включения строк в столбцы ID, LAST_NAME, FIRST_NAME и DEPT_ID таблицы S_EMP; и обновления столбца FIRST_NAME таблицы S_EMP.
SVRMGR> GRANT SELECT,
2> INSERT (id, last_name, first_name, dept_ID) ,
3> UPDATE(first_name)
4>ON s_emp TO hanne;
Statement processed.
Замечания
• Для того, чтобы предоставить привилегии для объекта, объект должен находиться в вашей схеме пли вам должна быть предоставлена объектная привилегия с параметром WITH GRANT OPTION.
• Владелец объекта может предоставлять любую объектную привилегию для данного объекта любым другим пользователям или ролям базы данных
Владелец объекта автоматически получает все объектные привилегии для этого объекта.
Предоставление привилегий с параметром WITH GRANT OPTION
Привилегия, которая была предоставлена с параметром WITH GRANT OPTION, может предоставляться другим пользователям или ролям.
SVRMGR> GRANT SELECT ON s_emp TO hanne, ernie
2>WITH GRANT OPTION;
Statement processed.
Параметр WITHGRANTOPTION
• Если в команде GRANT был указан параметр WITH GRANT OPTION, то получатель привилегии может предоставлять ее другим пользователям.
• Объектная привилегия, полученная с параметром WITH GRANT OPTION, отменяется при отмене привилегии у пользователя, предоставившего эту привилегию
• Привилегия с параметром WITH GRANT OPTION не может предоставляться ролям.
Список всех предоставленных пользователям объектных привилегий можно получить из словаря данных.
Представления, содержащие информацию об объектных привилегиях:
Доступные для DBA |
Описание |
DBA_TAB_PRIVS |
Все привилегии для объектов базы данных. |
DBA_COL_PRIVS |
Все объектные привилегии базы данных, в которых указаны столбцы таблиц. |
Доступные для пользователя |
Описание |
USER_TAB_PRIVS |
Информация об объектных привилегиях, в предоставлении которых участвовал данный пользователь. |
USER_TAB_PRIVS_MADE |
Привилегии для объектов, владельцем которых является данный пользователь. |
USER_TAB_PRIVS_RECD |
Информация об объектных привилегиях, предоставленных данному пользователю. |
USER_COL_PRIVS |
Информация об объектных привилегиях с указанием столбцов, в предоставлении которых участвовал данный пользователь. |
USER_COL_PRIVS_MADE |
Привилегии для столбцов таблиц, владельцем которых является данный пользователь |
USER_COL_PRIVS_RECD |
Информация об объектных привилегиях с указанием столбцов, предоставленных данному пользователю |
Пример
Выдайте список всех предоставленных привилегий, запросив DBA_TAB_PRIVS
Представления, содержащие информацию об объектных привилегиях:
Представления, доступные для всех пользователей |
Описание |
ALL_TAB_PRIVS |
Информация об объектных привилегиях, предоставленных данному пользователю явно или через PUBLIC. |
ALL_TAB_PRIVS_MADE |
Привилегии данного пользователя и привилегии для объектов данного пользователя. |
ALL_TAB_PRIVS_RECD |
Информация об объектных привилегиях, предоставленных данному пользователю явно или через PUBLIC. |
TABLE_PRIVILEGES |
Информация об объектных привилегиях, в предоставлении которых участвовал данный пользователь явно или через PUBLIC. |
ALL_COL_PRIVS |
Информация об объектных привилегиях, предоставленных данному пользователю явно или через PUBLIC, с указанием столбцов таблиц. |
ALL_COL_PRIVS_MADE |
Привилегии с указанием столбцов таблиц, принадлежащих данному пользователю, или предоставленные кому-либо данным пользователем. |
ALL COL_PRIVS_RECD |
Информация об объектных привилегиях, предоставленных данному пользователю явно или через PUBLIC, с указанием столбцов таблиц |
COLUMN_PRIVILEGES |
Информация об объектных привилегиях, в предоставлении которых участвовал данный пользователь явно или через PUBLIC, с указанием столбцов таблиц. |
Пример
Выдайте список всех столбцов, для которых предоставлены объектные привилегии для всех пользователем, запросив для этого представление DBA_COL_PRIVS
Отменяйте объектные привилегии с помощью команды REVOKE.
Замечание: Пользователь может отменить привилегии только у тех пользователей, которым он сам предоставил эти привилегии
Пример
Отмените все привилегии пользователя Наnnе, которые были предоставлены ему для таблицы S_EMP.
Отмена объектных привилегий с параметром WITH GRANT OPTION
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.