Oracle SQL Developer查询连接其他用户

4

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

我想知道 SQL developer 是否支持或有相当于以下命令的命令:

connect scott/tiger;

提前感谢您。

编辑

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

显示的错误是

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

因此,我想要以"Schema B"身份登录,将所有权限授予SYS用户,再次以sys身份登录并创建关系。

希望这次我更清楚了。

3个回答

5
我相信你需要断开并重新建立与数据库/服务的连接,以便在SQL Developer中以不同的用户登录。
然而,如果你只想在SCOTT用户的名称空间中执行命令(这样CREATE TABLE EMP...会被执行为CREATE TABLE SCOTT.EMP ...),你可以输入: alter session set current_schema = SCOTT;

1
作为 Oracle 的新手,我认为我在概念本身上犯了一个错误。我已经编辑了问题,针对我具体的问题。 - Nick Binnet

2
作为用户SYS,您应该能够通过在对象名称前加上模式所有者来创建所需的关系,如之前所述:
ALTR TABLE foo.t1 ADD FOREIGN KEY (col) REFERENCES bar.t2(ID);

话虽如此,为了建立这种关系,您还必须授予用户foo REFERENCES权限:

GRANT REFERENCES ON bar.t2 TO foo;

用户SYS应该能够完成所有这些操作。是否是一个好的实践问题另当别论。

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 用户进行正常开发...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接