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