Oracle Grant那么同义词还有其他的方法吗?

Oracle Grant那么同义词还有其他的方法吗?,oracle,oracle11g,oracle10g,Oracle,Oracle11g,Oracle10g,为了能够让其他模式使用它不拥有的表,我通常 GRANT SELECT ON TABLE t TO otherUser CREATE PUBLIC SYNONYM t FOR t 问题是,我一直认为,如果我授予select,Oracle应该自动让新用户查看该表 事实上,我必须创建一个同义词,否则新用户无法选择它 我在想还有别的办法吗?要让其他用户看到该表并执行select而不创建同义词 我在想还有别的办法吗?要让其他用户看到该表并执行select而不创建同义词 对 如果没有同义词,其他用户必

为了能够让其他模式使用它不拥有的表,我通常

GRANT SELECT ON TABLE t TO otherUser 

CREATE PUBLIC SYNONYM t FOR t
问题是,我一直认为,如果我授予select,Oracle应该自动让新用户查看该表

事实上,我必须创建一个同义词,否则新用户无法选择它

我在想还有别的办法吗?要让其他用户看到该表并执行select而不创建同义词

我在想还有别的办法吗?要让其他用户看到该表并执行select而不创建同义词

如果没有同义词,其他用户必须指定模式\名称,以引用其他模式中的表

SCHEMA.TABLE

@Boneist补充了一个很好的观点。有时,您可以避免同义词充斥系统,只需发出ALTERSESSION语句将当前模式设置为您希望访问对象的模式


关于AskTom的详细讨论。

或者用户可以发布
alter session set current schema=schemaname
@Boneist是的,这是避免同义词的好方法,并且在没有模式名的情况下可以减少一些解析。在答案中添加了相同的内容。谢谢除了表或视图所有者之外,还有谁可以授予其他架构/用户上的select权限?@Boneist@user5324782数据库所有者始终具有这样做的权限。或者如果任何用户被授予这样做的特权。