为什么我不能给其他用户授予角色

时间:2013-12-30 15:41:56

标签: oracle

我正在尝试向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>

2 个答案:

答案 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