5

我的任务是将两个 oracle 模式与大量表进行比较,以找出模式中的结构差异。直到知道我在 Oracle SQL Developer 中使用过 DB Diff 工具,它运行得非常好。问题是现在我需要比较无法登录的用户中的表,但我可以通过 SQL 开发人员中的其他用户部分看到它。问题是,每当我尝试使用 diff 工具将这些对象与其他模式进行比较时,它都不起作用。有谁知道如何做到这一点?这将为我节省大量的工作。如果需要的话,我有一些基本的 SQL 知识。谢谢。

4

2 回答 2

2

如果您已在该其他模式中获得了 GRANTed 权限,请发出

alter session set current_schema = OTHER_SCHEMA_NO_QUOTES_REQUIRED;

运行任何工具。

否则,它是select * from all_tables where owner = OTHER_USER;'select * from all_indexes where ...` 等。

于 2010-06-10T00:25:33.880 回答
0

只是用正确的答案来恢复这个问题。

如果您可以让您的 DBA 通过您授予您代理,您可以在不知道最终模式的密码的情况下执行以下操作:

ALTER USER {use you do not have pw to - lets call it ENDSCHEMA} GRANT CONNECT THROUGH {user you have pw for - lets call it YOURSCHEMA};

然后在 SQL Developer 中创建一个连接,其中:

username: YOURSCHEMA[ENDSCHEMA] 
password: YOURSCHEMA password

然后,您可以继续并在两个模式上进行数据库差异,并且永远不知道 ENDSCHEMA 的密码。

于 2015-10-25T21:15:13.623 回答