首页 文章

Oracle用户无法获得角色权限

提问于
浏览
1

我正在运行Oracle XE(11.2.0.2.0) . 我有一个用户U1创建/拥有表,另一个用户U2使用它们 . 当U1授予U2特权时,一切正常 .

现在U1创建了一个TESTROLE角色,授予了一些特权,并授予U2 TESTROLE . U2可以在USER_ROLE_PRIVS中看到TESTROLE但不继承其权限:它无法访问表,并且USER_TAB_PRIVS中未列出权限 .

这是我做的(作为U1):

CREATE TABLE TABLE1 ( FIELD1 VARCHAR2(20) );
CREATE ROLE TESTROLE NOT IDENTIFIED;
GRANT SELECT ON TABLE1 TO TESTROLE;
GRANT TESTROLE TO U2;
ALTER USER U2 DEFAULT ROLE ALL;

(是的,我为U1提供了此测试的ALTER USER权限 . )

现在,当U2生成 SELECT * FROM U1.TABLE1 时,它获得ORA-00942(表或视图不存在) . 当我将SELECT权限直接授予U2时,访问有效 . 当U2调用 SELECT * FROM USER_ROLE_PRIVS 时,TESTROLE就在那里,DEFAULT_ROLE = YES .

起初我认为可能XE不支持角色,但我发现没有这样的限制 . 我错过了什么?任何暗示赞赏 .

1 回答

  • 2

    如果在您向其授予角色时登录了U2,则尝试重新登录U2并重新登录 .

相关问题