我正在尝试向Oracle中的其他用户授予角色。虽然我得到了:授予成功,但似乎用户没有获得该角色,任何人都可以帮忙吗?
SQL> select * from students;
no rows selected
SQL> Grant select on students to C##reine;
Grant succeeded.
SQL> disconnect
Disconnected from Oracle Database 12c Release 12.1.0.1.0 - 64bit Production
SQL> connect
Enter user-name: C##reine
Enter password:
Connected.
SQL> select * from students;
select * from students
*
ERROR at line 1:
ORA-00942: table or view does not exist
SQL>
答案 0 :(得分:1)
我确定用户C##reine
有角色。如果您以C##reine
身份登录并尝试以下查询,则应该看到它:
SELECT * FROM User_Tab_Privs
WHERE Table_Name = 'STUDENTS';
问题是该表在另一个模式中,因此C##reine
在查询时需要对表进行别名(请注意,在此答案之后发布的注释提供了实际的模式名称):
SELECT * FROM C##jad.students;
要使用户可以看到没有别名的表格,请尝试以下操作:
-- As user C##reine
CREATE SYNONYM STUDENTS FOR C##jad.STUDENTS;
用户C##reine
需要拥有CREATE SYNONYM
系统权限。
答案 1 :(得分:0)
用户需要使用其所有者架构限定表:
select * from xyz.students