2011-06-09 325 views
3

我正在通过一个新的sql文件设计一个新的数据库。我正在使用Oracle SQL Developer并以sysdba身份登录。Oracle SQL Developer查询连接为其他用户

我想知道,如果SQL开发人员支持或具有同等命令

connect scott/tiger; 

预先感谢您。

编辑

我想对架构创建一个外键的表引用到架构B表。

所示的误差是

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

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

希望我这次更清楚。

回答

2

当用户SYS,你应该能够创造出你想要通过简单的关系前缀对象名称与架构所有者,如前面提到的:

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

这就是说,你还必须授予REFERENCES权限的用户foo为了使这种关系:

GRANT REFERENCES ON bar.t2 TO foo; 

用户SYS应该能够完成所有这些。这是否是一种好的做法是另一个问题。

+1

谢谢,做到了。 – 2011-06-09 15:23:48

4

我相信你需要打破并重新建立到数据库/服务的连接才能以SQL Developer中的其他用户身份登录。

但是,如果你只是想在SCOTT用户的名字空间(这样CREATE TABLE EMP...作为CREATE TABLE SCOTT.EMP ...执行,可以发出

alter session set current_schema = SCOTT;

+1

作为Oracle的新手,我认为我在概念本身有一个错误。我已经编辑了这个问题到我有的具体问题。 – 2011-06-09 14:23:15

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登录做正常的发展...

相关问题