无需使用用户前缀即可从其他用户访问Oracle架构对象

时间:2012-03-16 14:33:45

标签: oracle oracle10g oracle11g

我有一个用户,他们的帐户有很多表格。让我们说UserA。我可以做SELECT * FROM TABLE一切都很好。如果我以另一个用户UserB登录,但是使该用户成为只读连接我无法访问该表,我必须使用SELECT * FROM UserA.TABLE

在Oracle的某个地方是否有办法允许UserB访问UserA的表而无需在表名之前放置用户前缀?

2 个答案:

答案 0 :(得分:11)

以UserB身份登录后,运行以下语句:

ALTER SESSION SET current_schema = UserA;

之后,您不必为表名添加前缀。

如果您不想手动运行,可以创建一个自动执行此操作的登录触发器。

答案 1 :(得分:11)

您也可以通过在表格上创建同义词来完成此操作:

CREATE SYNONYM TABLE FOR UserA.TABLE;