Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
要向角色授予什么Oracle特权,以便用户能够在Oracle SQL Developer模式中查看表_Oracle_Oracle Sqldeveloper_Oracle12c - Fatal编程技术网

要向角色授予什么Oracle特权,以便用户能够在Oracle SQL Developer模式中查看表

要向角色授予什么Oracle特权,以便用户能够在Oracle SQL Developer模式中查看表,oracle,oracle-sqldeveloper,oracle12c,Oracle,Oracle Sqldeveloper,Oracle12c,使用Oracle 12c,我有一个角色,我已将基本CRUD操作授予使用Oracle SQL Developer的人员。问题是,该组的用户无法在Oracle SQL Developer中查看表列表。他们所看到的只是显示tables节点的分支,但对于需要使用的模式,没有加号来展开和查看表。在使用Oracle SQL Developer时,还需要向组授予哪些其他特权,以便组可以查看其架构的所有表节点?提前谢谢。如果我没听错,你会明白的 创建一个角色 授予该角色某些特权 创建了一批用户 已将角色(从步

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

如果我没听错,你会明白的

  • 创建一个角色
  • 授予该角色某些特权
  • 创建了一批用户
  • 已将角色(从步骤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节点下的任何内容(因为这些用户没有表(直到他们在自己的模式中创建表),但会在同义词中看到一些内容,如果我理解正确,您可以

  • 创建一个角色
  • 授予该角色某些特权
  • 创建了一批用户
  • 已将角色(从步骤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节点下的任何内容(因为这些用户没有表(直到他们在自己的模式中创建表),但将在同义词中看到一些内容,它们是否将转到其他用户,表节点?如果它们不是以架构所有者的身份登录,它们将永远不会在主表节点上看到这些内容,而表“活动”将转到其他用户,表节点?如果它们不是以架构所有者的身份登录,它们将永远不会在主表节点上看到这些内容表“活动”的所有者在“筛选”对话框中有一个选项,用于包含显示表的同义词这是一个不错的选项,@that!谢谢您提供的信息!在“筛选”对话框中有一个选项,用于包含显示表的同义词这是一个不错的选项,@that!谢谢您提供的信息!