Если я вас правильно понял, вы
- создал роль
- предоставил определенные привилегии этой роли
- создал группу пользователей
- предоставленная роль (с шага 1) этим пользователям
но они все еще ничего не видят.
Если это так, они ничего не увидят, независимо от того, что вы предоставляете, - потому что у них нет этих объектов в их схемах.
То, что вы (или они) должны / могли бы сделать, это предварять имя таблицы именем владельца при выборе данных из этих таблиц. Предположим, что есть таблица с именем EMPLOYEE
, и ваши пользователи хотят выбрать из нее данные - они должны запустить select * from robertcode.employee
(при условии, что пользователь robertcode
владеет этой таблицей)
Хотя это работает , пользователи не будут счастливы, потому что они не знают имен таблиц. Поэтому создайте сценарий, который они будут запускать в своих схемах - этот сценарий создаст синонимов для ваших таблиц.
Для этого напишите запрос, который создаст запрос:
SQL> select 'create synonym ' || table_name || ' for ' || table_name ||';'
2 from user_tables;
'CREATESYNONYM'||TABLE_NAME||'FOR'||TABLE_NAME||';'
--------------------------------------------------------------------------------
create synonym EMP for EMP;
create synonym BONUS for BONUS;
create synonym SALGRADE for SALGRADE;
create synonym DEPT for DEPT;
Скопируйте / вставьте все эти операторы create synonym ...
в сообщение электронной почты и позвольте им создавать синонимы для себя.
Они все равно ничего не увидят под узлом Таблицы (потому что у этих пользователей нет таблиц (пока они не создадут их в своей собственной схеме), но они увидят что-то в Синонимах .