【问题标题】:New oracle user can't access tables新的 oracle 用户无法访问表
【发布时间】:2011-11-22 09:52:18
【问题描述】:

我刚刚将一个 ORACLE 数据库导入到在 Linux 系统上运行的 Oracle 10 XE 实例中。

数据库中的表被拆分为多个表空间,sys 用户可以毫无问题地访问所有表。

我创建了一个新用户 (fred),但在以该用户身份登录时,我无法访问任何表。我已经设置了用户的默认表空间,以便能够在以 fred 身份登录时访问这些表。

alter user fred default tablespace t1;

当我以 fred 身份连接并尝试查看表空间 t1 中的表时,我收到以下错误:

describe table1;
ERROR:
ORA-04043: object table1 does not exist

如何配置用户fred,以便他可以像当前用户sys一样轻松访问各种表空间(t1、t2、t3...t6)中的所有表?

我过去从未真正涉足过 oracle,但我已经相当广泛地使用了 MS SQL。

【问题讨论】:

    标签: sql oracle oracle-xe tablespace


    【解决方案1】:

    在 Oracle 中,模式和用户的概念不同于其他 DBMS。为了获得用户 fred 的表访问权限,您需要为这些表创建 synonyms,并且 sys 用户需要对这些表发出授权(例如选择、更新等)。

    【讨论】:

    • 好的,我不熟悉同义词,但会在这个主题上做一些阅读。考虑到 sys 已经可以从任何表空间访问表,而我不必专门引用表空间名称,它们是否可能已经存在?
    • 我使用this link 为所有表格创建了同义词。现在工作正常。非常感谢。
    • @Bryan 很高兴它解决了您的问题,我正要发布一些用于创建同义词的链接。 Oracle 有时会很棘手。神谕快乐..
    【解决方案2】:
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-11
    • 2017-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-28
    • 1970-01-01
    相关资源
    最近更新 更多