授予角色什么Oracle特权,以便它允许用户查看Oracle SQL Developer模式中的表

时间:2018-11-12 05:28:00

标签: oracle oracle-sqldeveloper oracle12c

使用Oracle 12c,我具有一个角色,该角色已授予使用Oracle SQL Developer的基本CRUD操作。问题是,该组的用户无法在Oracle SQL Developer中看到表列表。他们所看到的只是显示表节点的分支,但没有加号可以展开并查看需要使用的一个模式的表。需要向该组授予什么其他特权,以便他们在使用Oracle SQL Developer时可以看到其架构的所有表节点?预先感谢。

1 个答案:

答案 0 :(得分:2)

如果我对您的理解正确,那么您

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

,但他们仍然看不到任何东西。

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

您(或他们)应该/可以做的是在从那些表中选择数据时,在表名之前加上所有者名称。假设有一个名为m = [[1,2,3],[4,5,10],[6,2,1]] #input 2D array a, b = 0, 2 #user input --> specific point a and b flat_list_m = [item for firstlist in m for item in firstlist] #flat the 2D list print (flat_list_m[len(m[0])*a+b:]) #print from specific position a and b, considering your sublist length is consistent throughout. 的表,并且您的用户想要从中选择数据-他们应该运行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; 语句复制/粘贴到电子邮件中,并让它们为自己创建同义词。

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