我在同一台 Oracle 服务器上有许多数据库,并且我使用 Dbeaver 作为 IDE 连接到数据库。但是,我需要为每个数据库单独创建连接,即使它们位于同一服务器上。无论如何,我们是否可以创建单个连接并切换到所需的数据库,就像我们在 SQL Server 中一样?
我尝试使用 DBeaver 连接同一 Oracle 服务器上的多个数据库,但我无法做到这一点
CONNECT
命令:
connect username@connect_identifier
如果 DBeaver 支持该 SQL*Plus 命令,那么您应该能够在脚本中使用它来更改从一个用户到另一个用户的连接(或者如果您指定了
connect_identifier
,则从一个数据库实例到另一个数据库实例)。
或者:
在SQL*Plus(或SQL Developer)中运行需要连接多个用户/数据库的脚本,而不是DBeaver;或
连接到具有适当权限的用户来访问您需要访问的数据库实例中的所有用户,并确保您的脚本在所有表标识符前添加用户的架构标识符。
即变化:
CONNECT user1
SELECT * FROM table1;
CONNECT user2
SELECT * FROM table2;
至:
SELECT * FROM user1.table1;
SELECT * FROM user2.table2;
并连接到已授予
SELECT
和 user1.table1
权限的用户。
虽然这些数据库驻留在同一数据库服务器上(因此主机相同),但它们具有不同的
描述(端口、服务名称)。此外,当您与任何数据库中的任何用户建立连接时,您需要使用适当的凭据(用户名、密码)并提供目标数据库。 所有这意味着与任何数据库中的一个用户的一个连接都需要单独的连接。
关于不同用户数据的获取方式:
中,它(该用户)应该向您授予一些权限(user2.table2
是最常见的),然后您可以在表的名称前面添加所有者名称,例如
grant select
或在您的架构中创建指向其他用户的对象的同义词。
中,那么您将需要一个数据库链接来访问这些表。
打开“连接到数据库”对话框(通过:数据库 | 新数据库连接 | SQL Server | 下一步)。
在“主要”选项卡上:
select * from another_user.employees;
对我来说,关键似乎是将“数据库/架构”留空并选择“显示所有架构”。您可以输入适合您的连接的其他输入。