Oracle SQL Developer Query以其他用户身份连接

时间:2011-06-09 10:55:18

标签: sql oracle

我正在通过一个新的sql文件设计一个新的数据库。我正在使用Oracle SQL Developer并以sysdba身份登录。

我想知道SQL开发人员是否支持

或具有相同的命令

connect scott/tiger;

提前谢谢。

修改

我正在尝试在引用Schema B表的Schema A表上创建一个外键。

显示的错误是

  

[Err] ORA-00942:表格或视图   不存在

因此,我希望以“Schema B”身份登录,授予SYS用户所有权限,再次以sys身份登录并创建关系。

希望这次我更清楚。

3 个答案:

答案 0 :(得分:4)

我认为你需要打破并重新建立与数据库/服务的连接,以便在SQL Developer中以其他用户身份登录。

但是,如果您只想进入SCOTT用户的名称空间(以便CREATE TABLE EMP...执行CREATE TABLE SCOTT.EMP ...,则可以发出

alter session set current_schema = SCOTT;

答案 1 :(得分:2)

作为用户SYS,您应该能够通过在对象名称前加上架构所有者来创建所需的关系,如前所述:

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

也就是说,您还必须为用户foo授予REFERENCES权限才能建立这种关系:

GRANT REFERENCES ON bar.t2 TO foo;

用户SYS应该能够做到这一切。这是一个好的做法是另一个问题。

答案 2 :(得分:1)

还要记住,如果您尝试在不同架构中创建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进行正常开发......