使用Oracle 12c,我具有一个角色,该角色已授予使用Oracle SQL Developer的基本CRUD操作。问题是,该组的用户无法在Oracle SQL Developer中看到表列表。他们所看到的只是显示表节点的分支,但没有加号可以展开并查看需要使用的一个模式的表。需要向该组授予什么其他特权,以便他们在使用Oracle SQL Developer时可以看到其架构的所有表节点?预先感谢。
答案 0 :(得分:2)
如果我对您的理解正确,那么您
,但他们仍然看不到任何东西。
如果是这样,无论您授予什么权限,他们都不会看到任何东西-这是因为他们的架构中没有这些对象。
您(或他们)应该/可以做的是在从那些表中选择数据时,在表名之前加上所有者名称。假设有一个名为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 节点下,他们仍然看不到任何内容(因为这些用户没有表(直到他们在自己的架构中创建表),但是在同义词中会看到一些内容。