【问题标题】:Oracle Grant then SYNONYM is there any other ways?Oracle Grant 那么 SYNONYM 有没有其他方法?
【发布时间】:2015-10-13 09:18:33
【问题描述】:

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

GRANT SELECT ON TABLE t TO otherUser 

CREATE PUBLIC SYNONYM t FOR t

问题是我一直认为 Oracle 应该自动让 newUser 看到表,如果我授予它选择权限。

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

我徘徊还有什么办法吗?让其他用户看到表并执行选择而不创建同义词?

【问题讨论】:

    标签: oracle oracle11g oracle10g


    【解决方案1】:

    我徘徊还有什么办法吗?让其他用户看到表并执行选择而不创建同义词?

    是的。

    如果没有同义词,其他用户必须指定 SCHEMA_NAME 才能引用其他架构中的表。

    SCHEMA.TABLE
    

    @Boneist 添加的一个好点。有时,您可以避免用同义词淹没系统,只需发出一个 alter session 语句来将当前模式设置为您希望访问对象的模式。

    在 AskTom 上详细讨论 here

    【讨论】:

    • 或者用户可以发出alter session set current schema = schemaname;
    • @Boneist 是的,这是一种避免同义词和一些没有模式名称的较少解析的好方法。在答案中添加了相同的内容。谢谢
    • 除了表或视图所有者之外,还有谁可以授予对其他架构/用户的选择?
    • @user5324782 数据库所有者始终有权这样做。或者,如果任何用户被授予这样做的权限。
    猜你喜欢
    • 1970-01-01
    • 2012-12-06
    • 2017-02-22
    • 1970-01-01
    • 1970-01-01
    • 2012-11-22
    • 2020-02-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多