2016-09-13 14 views
1

Я пытаюсь предоставить доступ к таблице из schema1 в schema2 (oracle10g).Почему я могу создать синоним, но не предоставлять грант в той же таблице?

я создал синоним на SCHEMA2:

CREATE SYNONYM schema2.table FOR schema1.table; 

Синоним был создан успешно.

Затем я попытался предоставить выбор на той же таблице:

grant select on schema1.table to schema2; 

я получил:

ORA-00942: table or view does not exist 

Это не имеет смысла для меня. Я смог создать синоним, но не грант. Что я делаю неправильно?

Я не в состоянии получить таблицу из SCHEMA2:

select * from table; 
ORA-00942: table or view does not exist 
+0

Имейте в виду, что предоставляются гранты, а не принимаются. Schema2 не может предоставлять права на объекты Schema1 (если это не учетная запись DBA). Грант должен исходить из Схемы 1, позволяя Schema2 получить доступ к своим объектам. –

ответ

2

Если у меня есть «CREATE ANY SYNONYM | права, я могу создать синоним для таблицы в схеме 1 в схеме 2 без необходимости субсидий на базовые объекты. Если у меня нет прав в таблице schema1 (GRANT WITH GRANT OPTION), чтобы повторно предоставить его другому пользователю, то я также не могу получить грант от этого пользователя.

Решение, журнал в качестве схемы1 и выполните грант там, а затем синоним будет работать в соответствии с схемой2 или гарантировать, что пользователь, с которым я МОЖЕТ войти в систему, имеет права предоставлять грант объекту schema1.

За Ваш комментарий:

Вход в качестве SCHEMA1 и гранта в зависимости от того действия, которые вы хотите SCHEMA2 иметь на своем столе.

например)

SQL> GRANT SELECT, INSERT, UPDATE, DELETE на таблицу, чтобы SCHEMA2;

После этого SCHEMA2 сможет видеть таблицу в синониме и разрешать ее выполнять.

Если SCHEMA2 собирается использовать эту таблицу в представлении о том, что тогда будет предоставлен выбор доступа к другим используемым схемам, то вам нужно добавить «WITH GRANT OPTION» к первоначальному гранту из схемы 1 или схемы2, не будет возможность повторного предоставления разрешений другим пользователям.

+0

Какой грант я должен делать на схеме1? Какие конкретные права я должен проверить на схеме2? – Rodrick

+0

см. Обновление моего ответа –

2

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

create synonym flub for blib;

... поэтому тот факт, что вы были в состоянии создать синоним не означает, что объекты существуют.