Не хватает привилегий при select-у из vew

Grei
Дата: 02.03.2007 16:43:52
Что-то вы с правами намудрили.

conn scott/tiger@test9;
Connected to Oracle9i Enterprise Edition Release 9.2.0.1.0 
Connected as scott
create view v_emp as select * from emp;

View created

conn sys@test9 as sysdba;
Connected to Oracle9i Enterprise Edition Release 9.2.0.1.0 
Connected as SYS

create role role1;
Role created

grant role1 to test;
Grant succeeded

conn scott/tiger@test9;
Connected to Oracle9i Enterprise Edition Release 9.2.0.1.0 
Connected as scott

grant select on v_emp to role1;
Grant succeeded

conn test/test@test9;
Connected to Oracle9i Enterprise Edition Release 9.2.0.1.0 
Connected as test

create synonym v_emp for scott.v_emp;
Synonym created

select * from v_emp where ename='CLARK';

EMPNO ENAME      JOB         MGR HIREDATE          SAL      COMM DEPTNO
----- ---------- --------- ----- ----------- --------- --------- ------
 7782 CLARK      MANAGER    7839 09.06.1981    2450,00               10
kennethr
Дата: 02.03.2007 16:58:27
Veronika_Vla
А вообще select-ы не работают ни на одну вьху схемы а.
Так что я думаю хитрость не в предсавлении

ORA-01031: insufficient privileges
Cause
An attempt was made to change the current username or password without the appropriate privilege. This error also occurs if attempting to install a database without the necessary operating system privileges.

Интересно, как эта ошибка связана с view. Чего-то вы недоговариваете.
Viewer
Дата: 02.03.2007 17:12:22
чем то мне это напоминает вот это
KhamRad
Дата: 02.03.2007 18:00:00
Veronika_Vla
Здравствуйте, подскажите поожалуйста, каких привилегий не хватает
Есть основная схема a, с таблицами, вьюшками и т.д и т.п.
В схеме b созданы синонимы на все объекты схемы a.
Даны гранты на select на все объекты схемы a схеме b.
В схеме b пытаюсь сделать select на вьюху схемы a.
выдается ошибка ora-01031/
Если в схеме b выполняю селект, на котором основана эта вьюха, то выполняется без проблем.
Пробовала давать гранты на прямую, не помогает :(


Возможно во view обращаться на обекты других пользователей. Если такие есть, то надо пользователю-владельцу view дать права на эти объекты с опцией with grant option.
Должно заработать!
KhamRad
Дата: 02.03.2007 18:01:52
KhamRad
Veronika_Vla
Здравствуйте, подскажите поожалуйста, каких привилегий не хватает
Есть основная схема a, с таблицами, вьюшками и т.д и т.п.
В схеме b созданы синонимы на все объекты схемы a.
Даны гранты на select на все объекты схемы a схеме b.
В схеме b пытаюсь сделать select на вьюху схемы a.
выдается ошибка ora-01031/
Если в схеме b выполняю селект, на котором основана эта вьюха, то выполняется без проблем.
Пробовала давать гранты на прямую, не помогает :(


Возможно во view есть обращения на объекты других пользователей. Если такие есть, то надо пользователю-владельцу view дать права на эти объекты с опцией with grant option.
Должно заработать!

Подправил ошибки :)
Veronika_Vla
Дата: 05.03.2007 12:14:08
Вобщем я поняла на какие представления не хватает привилегий.
У меня в схеме а есть ее таблицы и есть синонимы на схему с
Если представление основано только на таблицах схемы а, то в схеме b проблем нету.
Но если представление в схеме а основано на синонимах на схему с, то в схеме b при селекте получаю ошибку ORA-01031: insufficient privileges
То есть получается цепочка:
В схеме b есть только синонимы на объекты схемы а и привилегии на селект из этих объектов
В схеме a есть синонимы на объекты схемы с и привилегии на селект из этих объектов
b->a->c
При обращении из схемы b к объектам схемы с вознкают проблемы
Подскажите, пожалуйста, каких привилегий не хватает
Elic
Дата: 05.03.2007 12:25:52
Veronika_Vla
Но если представление в схеме а основано на синонимах на схему с, то в схеме b при селекте получаю ошибку ORA-01031: insufficient privileges
STFF Создание view из объктов разных схем ...
Veronika_Vla
Дата: 05.03.2007 12:59:48
Спасибо всем!
Теперь все нормально
hoarfrost
Дата: 10.11.2007 08:17:19
Здравствуйте!

0. Oracle 9.2.0.6.

1. Есть схема L, в которой есть таблицы A,B,C и представление V, основанное на таблицах A,B и C. Все таблицы и представление созданы самим пользователем L.

2. Из-под DBA содаю роль R_SELECT_V, пользователя U и делаю GRANT R_SELECT_V TO U.

3. Затем пользователем L делаю GRANT SELECT ON V TO R_SELECT_V.

После этого пользователь U "видит" L.V. - т.е. оно появляется в его ALL_VIEWS. Но при попытке сделать SELECT * FROM L.V, получает сообщение о том, что представление не существует. Ошибка была устранена при помощи GRANT SELECT ON <A,B,C по очереди> TO R_SELECT_V.

Но подобное решение, честно говоря, не очень нравится, т.к. хотелось бы, чтобы пользователь U видел только представление. (Ну хотя бы для того, чтобы никому не вздумалось завязываться на таблицы). Можно ли избавиться от прав на выборку из таблиц? (Если я не ошибаюсь, то подобная конструкция у меня уже работала, но, вроде бы под 10gXE).

К сожалению, не могу привести скриптов создания и выдачи прав, т.к. они осталисть на работе.

Спасибо!
Elic
Дата: 10.11.2007 14:48:35
hoarfrost
Но при попытке сделать SELECT * FROM L.V, получает сообщение о том, что представление не существует.
Не верю.
hoarfrost
Ошибка была устранена при помощи GRANT SELECT ON <A,B,C по очереди> TO R_SELECT_V.
Ещё больше не верю.
hoarfrost
К сожалению, не могу привести скриптов создания и выдачи прав
Напрасно Но тем не менее:
RTFM alter user ... default role, set role
STFF Default Role AND GRANT