Oracle SQL Developer Query Connect от имени другого пользователя - PullRequest
3 голосов
/ 09 июня 2011

Я проектирую новую базу данных через новый файл sql.Я использую Oracle SQL Developer и вошел в систему как sysdba.

Я хотел бы знать, поддерживает ли разработчик SQL или имеет команду, эквивалентную

connect scott/tiger;

Заранее спасибо.

Редактировать

Я пытаюсь создать внешний ключ в таблице схемы A, ссылающейся на таблицу схемы B.

Показана ошибка

[Err] ORA-00942: таблица или представление не существует

Поэтому я хочу войти в систему как «Схема B», предоставить все права пользователю SYS, войти снова как sys и создать связь.

Надеюсь, на этот раз я проясню.

Ответы [ 3 ]

4 голосов
/ 09 июня 2011

Я считаю, что вам необходимо разорвать и восстановить соединение с базой данных / службой, чтобы войти в систему под именем другого пользователя в SQL Developer.

Однако, если вы просто хотите оказаться в пространстве имен пользователя SCOTT (чтобы CREATE TABLE EMP... выполнялось как CREATE TABLE SCOTT.EMP ..., вы можете ввести

alter session set current_schema = SCOTT;

2 голосов
/ 09 июня 2011

Как пользователь SYS, вы должны иметь возможность создавать нужные отношения, просто добавляя имена объектов перед владельцем схемы, как уже упоминалось ранее:

ALTR TABLE foo.t1 ADD FOREIGN KEY (col) REFERENCES bar.t2(ID);

При этом вы также должны предоставить привилегию REFERENCES дляпользователь foo для того, чтобы установить это отношение:

GRANT REFERENCES ON bar.t2 TO foo;

Пользователь SYS должен иметь возможность сделать все это.Хорошая ли это практика или нет - другой вопрос.

1 голос
/ 09 июня 2011

Также помните, что если вы пытаетесь создать FK для таблицы в другой схеме и нет синонимов, вы должны полностью указать имя:

например, как пользователь SCHEMA_A:

ALTER TABLE SCHEMA_A.TABLE_A
add CONSTRAINT fk_TABLE_B
  FOREIGN KEY (COLUMN_A)
  REFERENCES SCHEMA_B.TABLE_B(COLUMN_B);

Вы упомянули об использовании пользователя SYS - я надеюсь, что вы не входите в систему SYS для нормальной разработки ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...