【问题标题】:What Oracle privilege is to be granted to a role so it allows users to see tables in Oracle SQL Developer schema授予角色什么 Oracle 权限,以便用户可以查看 Oracle SQL Developer 模式中的表
【发布时间】:2023-04-11 10:08:01
【问题描述】:

使用 Oracle 12c,我有一个角色,我已授予基本 CRUD 操作以使用 Oracle SQL Developer。问题是,该组的用户在 Oracle SQL Developer 中看不到表列表。他们所看到的只是显示表节点的分支,但没有加号来展开并查看他们需要使用的一个模式的表。在使用 Oracle SQL Developer 时,还需要向该组授予哪些其他权限,以便他们可以查看其架构的所有表节点?提前致谢。

【问题讨论】:

  • 他们会去其他用户,表格节点吗?如果他们没有以模式所有者的身份登录,他们将永远不会在主表节点上看到它,而表“存在”thatjeffsmith.com/archive/2013/03/…

标签: oracle oracle-sqldeveloper oracle12c


【解决方案1】:

如果我理解正确的话,你

  • 创建了一个角色
  • 向该角色授予某些特权
  • 创建了一堆用户
  • 向这些用户授予角色(从第 1 步开始)

但他们仍然什么也没看到。

如果是这样,无论您授予什么,他们都不会看到任何东西 - 这是因为他们的架构中没有这些对象。

您(或他们)应该/可以做的是在从这些表中选择数据时,在表名之前加上所有者名。假设有一个名为 EMPLOYEE 的表,并且您的用户想要从中选择数据 - 他们应该运行 select * from robertcode.employee(假设用户 robertcode 拥有该表)

虽然它有效,但用户不会高兴,因为他们不知道表名。因此,创建一个他们将在其架构中运行的脚本 - 该脚本将为您的表创建 同义词

为此,编写将创建查询的查询:

SQL> select 'create synonym ' || table_name || ' for ' || table_name ||';'
  2  from user_tables;

'CREATESYNONYM'||TABLE_NAME||'FOR'||TABLE_NAME||';'
--------------------------------------------------------------------------------
create synonym EMP for EMP;
create synonym BONUS for BONUS;
create synonym SALGRADE for SALGRADE;
create synonym DEPT for DEPT;

将所有这些create synonym ... 语句复制/粘贴到电子邮件中,让他们为自己创建同义词。

他们仍然不会在 Tables 节点下看到任何内容(因为这些用户没有表(直到他们在自己的架构中创建它们),但会在 Synonyms 中看到某些内容

【讨论】:

  • 过滤器对话框中有一个选项可以包含显示表格的同义词
  • 这是一个不错的选择,@that!谢谢你的信息!
猜你喜欢
  • 2017-09-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-13
  • 2011-01-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多