Управление привилегиями и ролями базы данных, страница 2

Вы можете предоставить объектные привилегии пользователям и ролям с помощью команды 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