Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Oracle > Вопрос по синонимам


Автор: AlexLogos 7.9.2010, 12:06
Здравствуйте уважаемые!
Было дело три недели назад. Создал я табличное пространство Х. Создал Юзера ADMIN, который обитал в этом пространстве, кучу табличек создал этим пользователем. Потом ним же создал роль которой дал возможность выбирать из табличек данные, и Юзера USER1 которому присвоил роль. По идее на запрос USER1 "select * from scl_10" должен быть ответ со списком строк, но такой таблицы не существует хотя синоним и создавался "CREATE SYNONYM SCL_10 FOR ADMIN.CL_10". Вроде все работало, но вот забарахлило. Хотя запрос от юзера ADMIN выполняется. В чем причина, подскажите пожалуйста?
Код

CREATE USER "ADMIN" IDENTIFIED BY VALUES 'DAB091FF2'
  DEFAULT TABLESPACE X
  PROFILE DEFAULT;


GRANT ALTER ANY PROCEDURE TO "ADMIN";
GRANT ALTER ANY TABLE TO "ADMIN";
GRANT ALTER ANY TRIGGER TO "ADMIN";
GRANT CREATE ANY INDEX TO "ADMIN";
GRANT CREATE PROCEDURE TO "ADMIN";
GRANT CREATE ROLE TO "ADMIN";
GRANT CREATE SEQUENCE TO "ADMIN";
GRANT CREATE SESSION TO "ADMIN";
GRANT CREATE TABLE TO "ADMIN";
GRANT CREATE TABLESPACE TO "ADMIN";
GRANT CREATE TRIGGER TO "ADMIN";
GRANT CREATE USER TO "ADMIN";
GRANT CREATE VIEW TO "ADMIN";
GRANT DELETE ANY TABLE TO "ADMIN";
GRANT DROP ANY PROCEDURE TO "ADMIN";
GRANT DROP ANY TABLE TO "ADMIN";
GRANT DROP ANY TRIGGER TO "ADMIN";
GRANT DROP ANY VIEW TO "ADMIN";
ALTER USER "ADMIN" QUOTA 104857600 ON TEMP;
ALTER USER "ADMIN" QUOTA Unlimited ON YYY;
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
CREATE ROLE "YYY_USER";

GRANT CREATE SESSION TO "YYY_USER";
GRANT SELECT ANY TABLE TO "YYY_USER";
GRANT UPDATE ANY TABLE TO "YYY_USER";
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
CREATE USER "USER1" IDENTIFIED BY VALUES '2A401D3F5'
  DEFAULT TABLESPACE X
  PROFILE DEFAULT;

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
GRANT X_USER TO "USER1";
ALTER USER "USER1" DEFAULT ROLE YYY_USER;

ALTER USER "USER1" QUOTA Unlimited ON YYY;



Автор: Zloxa 7.9.2010, 12:11
Цитата(AlexLogos @  7.9.2010,  12:06 Найти цитируемый пост)
По идее на запрос USER1 "select * from scl_10"

Запрос выполняете в консоли или в процедуре?

Автор: AlexLogos 7.9.2010, 12:14
В консоли

Автор: blednykhap 7.9.2010, 20:56
Цитата(AlexLogos @ 7.9.2010,  12:06)
...хотя синоним и создавался "CREATE SYNONYM SCL_10 FOR ADMIN.CL_10"...

Код

CREATE PUBLIC SYNONYM SCL_10 FOR ADMIN.CL_10


Не пробовали?

Автор: AlexLogos 11.9.2010, 09:26
Да, я забыл что создавал обычные синонимы. Публичный все решил. Все работает, спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)