【发布时间】:2019-01-24 00:02:57
【问题描述】:
我在 SQL 开发人员中使用多个连接来连接到不同的 Oracle 数据库。对于某些连接,我必须将架构更改为另一个用户的架构。这可以通过多种方式完成
通过使用:
alter session set current_schema = <otheruser>;缺点是我必须为每个要打开的连接输入这个,并且每个连接都使用不同的<otheruser>。使用首选项 > 数据库 > 文件名中的全局连接启动脚本作为连接启动脚本。这种方法的缺点是 SQL Developer 使用相同的全局启动脚本并为我打开的每个连接运行它。可能试图在大多数但一个连接中设置一个不存在的模式。
有没有办法在连接到数据库时为单个连接自动设置默认架构?
连接架构
- conn_1 保持此连接的当前架构不变
- conn_2 将此连接的当前架构更改为
<schema_A> - conn_3 保持此连接的当前架构不变
- conn_4 将此连接的当前架构更改为
<schema_B> - conn_5 将此连接的当前架构更改为
<schema_C>
解决方案会很有帮助。
【问题讨论】:
-
连接是否都到同一个数据库和/或同一个用户?如果是这样,您可能会找出您在全局脚本中所处的连接,并基于此更改为适当的模式。代理身份验证会更简单,但取决于您是否拥有这些权限,并且实际上希望作为所有者在该架构中 - 这样您就可以创建/删除东西 - 或者只是让查询看到该架构的对象没有前缀。